In 1990, Craig was elected to the Maryland House of Delegates, representing District 34 (Harford County). He was a member of the following committees: Constitutional and Administrative Law Committee, 1991–92; Ways and Means Committee, 1992-93 (education subcommittee); Commerce and Government Matters Committee, 1994. Vice-Chair, Harford County Delegation, 1993. Maryland State Senate.
Craig was then elected to the Maryland Senate in 1994 and served until 1999, representing District 34 (Harford County). He was a member of the following committees: Joint Committee to Study Mandates on Local Government, 1995–97; Economic and Environmental Affairs Committee, 1995–99 (education subcommittee; health subcommittee); Executive Nominations Committee, 1995–99; Joint Committee on Legislative Ethics, 1995–99; Joint Committee on Protocol. Chair, Harford County Delegation, 1998-99.
Craig ran for Harford County Executive in 1998 against then-Delegate James Harkins. Harkins easily defeated Craig in the Republican Primary and was subsequently re-elected in 2002. Harkins resigned as County Executive to become Director of Maryland Environmental Services in 2005, clearing the way for Craig to be appointed by the county council. As County Executive, Craig was elected President of the Maryland Municipal League(MML) in 2005, and in 2010 he was elected by his peers as President of the Maryland Association of Counties (MACo). He is the first elected official to have served as President of both organizations.