Share and Follow

On Tuesday, voters in Texas’ 18th Congressional District will cast their ballots in a special election to select a successor for the late Rep. Sylvester Turner, D-Houston, who passed away in March while serving in office.
In the absence of a primary election to whittle down the contenders, a total of 16 candidates are competing for the position. These candidates come from a variety of political affiliations, including Democrats, Republicans, independents, and the Green Party.
Among those leading in the polls leading up to the election are Acting Harris County Attorney Christian Menefee, former Houston City Council member Amanda Edwards, and state Rep. Jolanda Jones. These three were the only ones showing double-digit support, although none approached the 50% mark required for a decisive victory.
Should no candidate achieve the necessary majority, the two with the highest votes will face off in a runoff election. The eventual winner will hold the position for a short term, as the seat will be contested again in March 2026.
Subscribe to our Newsletter for more updates.
District 18 has long been a Democratic stronghold, with former Vice President Kamala Harris winning it by 40 points in 2024. But with new GOP redistricting plans underway, the boundaries of the district are shifting. The district, currently made up of a majority of voters of color, will see many residents moved into new districts ahead of the 2026 midterm election cycle.
Before Turner, Democratic Rep. Sheila Jackson Lee held the seat for nearly 30 years and died in office in July 2024. Her daughter, Erica Lee Carter, finished Jackson Lee’s term and endorsed Turner to fill the seat afterward. Turner died two months into his term, resulting in Tuesday’s special election to fill the seat.
Polls close at 8 p.m. ET on Tuesday in Houston. Follow election results in the tracker below:
function receiveMessage(event) {
if ([” ” && event.data.id && event.data.height)
document.getElementById(event.data.id).style.height = event.data.height + “px”;
}
window.addEventListener(“message”, receiveMessage, false);