Democrat Conor Lamb and Republican Rick Saccone face off Tuesday in the special election for Pennsylvania’s 18th Congressional District. We have the live results below, courtesy of Decision Desk HQ. Polls close at 8 pm ET.

The Pennsylvania district near Pittsburgh is deep-red Trump country: The president won there by 20 points in 2016. Trump showed up there last week to rally support for Saccone, the faltering Republican candidate. But Lamb has pulled into a virtual tie, according to the latest polls, bolstered by his compelling biography (he’s a 33-year-old Marine and former assistant US attorney), some moderate positions on issues like gun control, and a lackluster message and messenger from the GOP.

A Lamb win would be a stunning upset in a district that Republicans have held since 2003. Decision Desk HQ is tracking the live results below.

Republicans have poured heavy resources into the special election — $9 million at last count — even though the district will no longer exist in 2019 after the state’s gerrymandering lawsuit is resolved and despite GOP reservations, aired in DC news outlets about Saccone, who famously said he was “Trump before Trump was Trump.” They have struggled to sell a campaign message based on the Republican tax law, which was supposed to be the basis of the GOP platform heading into November 2018.

Meanwhile, Lamb, who started far behind in the polls, has surged. He has consolidated union support — which often went to the Republican who formerly held this seat, Tim Murphy, who was forced to resign over an affair scandal — and attracted top-flight Democrats like former Vice President Joe Biden to campaign for him.

It is neck and neck heading into election night. Here is how Vox’s Ella Nilsen summarized the stakes of the race: