In 1884, McCreary was elected to the first of six consecutive terms in the U.S. House of Representatives. As a legislator, he was an advocate of free silver and a champion of the state's agricultural interests. After two failed bids for election to the Senate, McCreary secured the support of Governor J. C. W. Beckham, and in 1902, the General Assembly elected him to the Senate. He served one largely undistinguished term, and Beckham successfully challenged him for his Senate seat in 1908. The divide between McCreary and Beckham was short-lived, however, and Beckham supported McCreary's election to a second term as governor in 1911.