MECKLENBURG COUNTY, N.C. -- Charlotte will have a new mayor in 2018.

In an upset, Mayor Pro Tem Vi Lyles defeated incumbent Jennifer Roberts during Tuesday's Charlotte primary election. Now, Lyles will square off against Republican City Councilman Kenny Smith in November. The race will determine the Queen City's seventh mayor in just eight years.

Early polls predicted that Robers would get the win, but Lyles was strong in virtually every corner of the city Tuesday. When all 168 precincts reported, Lyles topped Roberts by nearly 3,400 votes with 46 percent of the vote. Joel Ford was a distant third with just over 5,000 votes.

After Roberts conceded around 9:30 Tuesday night, Lyles took to Twitter to thank her supporters.

Roberts also issued a statement on Twitter following the election, saying she will continue to stand up and fight for her supporters.

"I've got to be Mayor for a few more months," Roberts said. "I am full of energy and there's a lot of work to do and there's a lot of hands to do it."

In the Republican race, Smith won in a landslide over Gary Dunn, claiming nearly 89 percent of the vote. In the Democratic primary for City Council At-Large, James 'Smuggie' Mitchell Jr., Braxton Winston II, Julie Eiselt and Dimple Ajmera rounded out the top four candidates.

"It is time for our community to step forward and take action on how we're going to create jobs for those that have been left behind," Lyles said at her victory party. "We need more people to create opportunity and we need more people to participate in it."

Officials results are pending. Click here for Mecklenburg County Board of Election's unofficial results.