Mets fans got flashbacks to the 2016 Wild Card game as Noah Syndergaard and Madison Bumgarner engaged in an epic pitching duel that saw a lot of batting averages suffer on both sides.

The bullpens battled it out into the night, posting zero after zero until Pete Alonso crushed his 32nd homer run of the season to give the Mets the lead in the 16th.

However, the beleaguered bullpen couldn’t shut the door as the Giants came back and walked off the Mets, 3-2. It was a devastating loss for a team that has finally shown some signs lately of turning their season around.

Offense

Jeff McNeil started off by lining the first pitch of the game for a double, and advanced to third on a hard-hit single by J.D. Davis. Pete Alonso brought in the first run of the game with a double play, giving the Mets the lead but missing an opportunity for more.

The Mets continued to be dominated by Bumgarner, going down in order in the second, third, and fourth innings. The Mets were befuddled by his cutter-curveball combination.

Their next baserunner didn’t come until the fifth inning, when Tomas Nido hit a two-out double. However, the Giants gave the intentional pass to the struggling Juan Lagares, and Bumgarner easily struck out Syndergaard to end the frame.

The Mets continued to struggle to mount any kind of rally against Bumgarner, as McNeil singled but was immediately erased on a Davis double play.

Again, the Mets went down quietly in the seventh as they struggled to square up anything thrown by Bumgarner. Through seven innings of one-run ball, his pitch count was at just 76.

Bumgarner kept on cruising, retiring eight in a row as he breezed through an eight-pitch eighth.

The Mets finally broke Bumgarner’s string of nine outs in a row with a Davis single outside the limited range of Pablo Sandoval. They made nothing of it though, conceding two groundouts as Bumgarner finished nine innings having thrown only 94 pitches.

Luckily for the Mets, the Giants opted not to stretch Bumgarner any further. They brought in lefty Will Smith, who’s had a great year, but the Mets greeted him rudely with Robinson Cano lining a hard single and Amed Rosario doubling.

After Nido struck out, the Giants intentionally walked Wilson Ramos to load the bases with one out. Luis Guillorme then pinch-ran for Ramos.

Smith settled down though, recording huge strikeouts of pinch-hitter Michael Conforto and McNeil to escape the jam with no runs allowed.

The Mets continued to scuffle, going down in order in the 11th against Reyes Moronta and in the 12th against Tony Watson.

They finally got something going in the 13th, putting runners on the corners with two outs due to singles from Conforto and Davis. Alonso could not come through though, as he flew out to center to end the threat.

The Mets went down softly again in the 14th, with Steven Matz pinch-hitting and striking out as the Mets ran out of bench players.

Nido walked to lead off the 15th, and Conforto singled with one out to give McNeil another chance to cash in. McNeil grounded into a force out, and Davis popped out as the Mets blew yet another chance to score.

Alonso led off the 16th inning having gone 0-6 on that night, but he finally broke through as he smashed a cutter over the left field wall to give the Mets a long-awaited 2-1 lead.

Pitching

Syndergaard looked strong early, retiring the side in order in the first, including a strikeout of Buster Posey with a 90 mph slider.

Alex Dickerson led off the second with a triple into Triples Alley, but Syndergaard induced two strikeouts and a popout to leave him stranded. His fastball was sitting around 98 to 100 mph.

Syndergaard stayed strong in the third, working around a two-out double from Brandon Crawford to throw another scoreless inning.

In the fourth, the Giants started jumping on Syndergaard’s fastball, lining three singles to load the bases. With the bases loaded and one out, Kevin Pillar hit a frozen rope that Davis just barely corralled. Nonetheless, it was a sac fly that tied the game. Syndergaard then induced a hard ground ball to Cano to get out of the inning with just the one run allowed.

Syndergaard bounced back and regained his command in the fifth inning, setting the Giants down one-two-three with two strikeouts.

He then enjoyed an easy sixth inning, recording two groundouts and a popout and completing six innings at 92 pitches.

Syndergaard came back out for the seventh in a 1-1 game, and was greeted by another triple to Triples Alley. After he induced a groundout with the infield in, the Mets opted to intentionally walk Joe Panik to get to Bumgarner.

With a 3-1 count on Bumgarner, Panik stole second as Bumgarner swung and missed on a nasty 98 mph sinker to make the count full. Syndergaard eventually got him to chase a slider for the second out.

After opting to pitch to Brandon Belt rather than walking him to face Posey, Syndergaard was able to weasel out of trouble and get Belt to fly out. He finished his evening with eight strikeouts and no unintentional walks.

Seth Lugo came in for the eighth inning, and retired the side in order helped out by back-to-back strikeouts of Posey and Sandoval.

Luis Avilan retired the first two batters in the ninth before allowing a hard-hit single to Kevin Pillar. He then got pinch-hitter Donovan Solano to fly out to send the game to extra innings.

Edwin Diaz entered in the bottom of the tenth, and walked the first batter he faced. However, he settled down to retire the next three hitters, including Posey for the fourth time, the first four-strikeout game of Posey’s career.

Jeurys Familia gave up a single to his first batter, but got a double play and a strikeout to record his third straight good outing.

After Robert Gsellman quickly retired the first two batters in the 12th, he lost an eight-pitch battle with Tyler Austin as he issued a two-out walk.

Gsellman stayed in for a second inning, and threw a dominating ten-pitch frame to send the game to the 14th.

Justin Wilson, pitching the 15th, walked the leadoff hitter, but then induced a force out and struck out Pillar on a controversial check swing call. After Solano singled, tomorrow’s starting pitcher Tyler Beede pinch-hit and struck out, prolonging the game even more.

The Mets went to Chris Mazza to pitch the 15th, despite the fact that he pitched two innings the previous day. He allowed a one-out single to Posey, but quickly exited the inning thanks to a double play from Sandoval. So on the teams went to the 16th inning!

Mazza went back to the mound with a 2-1 lead, but couldn’t shut the door this time as he was greeted by back-to-back doubles to tie the game. After hitting Austin Slater, he gave up a hard-hit single to load the bases with nobody out.

The Mets then went to a five-man infield to try and protect a run from scoring at all costs. That didn’t last long though, as Solano took two pitches to smack an opposite field walk-off single.

On Deck

The Mets will continue their series against the Giants tomorrow night at 10:15 pm ET. Jacob deGrom (5-7, 3.21 ERA) will look to stifle the Giants as Tyler Beede (3-3, 5.44 ERA) will take the mound for them.

The game will be televised on SNY and broadcast on WCBS 880.