Thomas was elected to the Stafford County Board of Supervisors for the George Washington District in 2011, defeating Democrat Charles V. Latimer by a margin of 60%-39%. He won re-election unopposed in 2015. In March 2017, he announced his candidacy for the 28th district seat in the Virginia House of Delegates in the race to replace
Speaker Bill Howell, who was retiring. Thomas was opposed in the Republican primary by one current and one former Stafford County Board of Supervisors member; Thomas won the primary with 49% of the vote. In the general election, Thomas was opposed by Democrat
Joshua G. Cole. On election night on November 7, 2017, unofficial election results showed Thomas had won the seat by a margin of 104 votes. Post-election canvassing shrunk the lead to 86 votes as of November 9. Cole's campaign manager said they would likely seek a recount. On November 14, the Stafford County Electoral Board certified the results, showing Thomas had won by 82 votes. On November 20, the state board of elections said at least 83 voters from the 28th district were incorrectly given ballots for the 88th district, and decided to delay certifying the results of the 28th district race, potentially allowing a court to step in. The following day, attorneys for House Republicans sent a letter threatening to sue the state board of elections over the delay, saying the appropriate course of action would be to certify the results to allow for a recount. The board found further "irregularities", saying the number of voters who incorrectly cast ballots in the 28th and 88th district races was at least 147, opening the possibility that Cole could contest the election and ask the House of Delegates to order a new election. On November 27, the state board of elections finally certified the results, giving Thomas the victory, but on November 29, the Cole campaign filed for a recount. On December 7, attorneys for House Democrats petitioned a federal judge to order a new election due to the issues with the 147 voters. The recount began on December 21, and found that Thomas won by a margin of 73 votes. On January 5, a federal judge denied a request from Democrats to prevent Thomas from taking office while they made their case for calling a new election. The Democrats appealed that ruling to the
Fourth Circuit Court of Appeals, but on January 10 a three judge panel unanimously denied the Democrats' appeal, clearing the way for Thomas to be sworn in on the first day of the General Assembly session. In June 2019, after one term, Thomas lost the Republican nomination to former Stafford County Supervisor
Paul Milde. Milde, who had unsuccessfully challenged Thomas in the 2017 primary, won 2,974 to 2,831. ==References==