Jay Bruce lined a game-ending single in the 12th inning and the New York Mets rebounded to beat the Milwaukee Brewers 5-4 on Tuesday night after shortstop Asdrubal Cabrera allowed the tying runs to score in the seventh when he flubbed a bases-loaded popup with two outs.
Wily Peralta (5-4) pitched a perfect 11th in his fourth relief outing since he was dropped from Milwaukee's rotation in mid-May, but then allowed a single to pinch-hitter T.J. Rivera leading off the 12th. Michael Conforto walked and Jose Reyes grounded into a forceout that left runners at the corners.
With the infield at double-play depth, Bruce singled up the middle to end a game that lasted 4 hours, 24 minutes. It was his first hit in six at-bats on the night.
Josh Smoker (1-2) pitched three scoreless innings to cap a strong effort from a beleaguered New York bullpen that has blown 10 of 21 save chances.
The Mets extended a winning streak to three for the first time since May 3-6 by winning for just the second time in seven extra-inning games.
The NL Central-leading Brewers lost for the seventh time in nine games.
Mets pitchers walked eight, but Milwaukee went 2 for 15 with runners in scoring position and stranded 14 on a night when manager Craig Counsell made three double switches to maximize his four-man bench.
Making his first major league start after seven minor league seasons, Tyler Pill held Milwaukee to one run and six hits over 5 1/3 innings. A day after his 27th birthday, Pill allowed runners in every inning and stranded six runners in scoring position. He hit his first batter with a pitch and Travis Shaw, jammed by a changeup, blooped a two-out RBI double just over a leaping Lucas Duda at first base.
Pill made his big league debut Saturday and took the loss after relieving in the 10th inning at Pittsburgh.
Duda's fourth homer in eight games, a two-run drive against Carlos Torres, extended New York's lead to 4-1 in the sixth, but Milwaukee loaded the bases in the seventh with one out against Fernando Salas.
Jerry Blevins threw a called third strike past Shaw and forced in a run with a walk to Domingo Santana. Jett Bandy hit what appeared to be a routine popup to shortstop, but Cabrera kept drifting back on the infield dirt and the ball ticked off his glove and bounced into left field as two runs scored.
Santana did not run initially and could only make it to third. He was stranded when pinch-hitter Jesus Aguilar struck out.
On a night with a Bogie-on-the-tarmac fog, Cabrera also had trouble settling under Orlando Arcia's popup in the sixth but made the catch. Cabrera's drop was similar to the game-ending error by Mets second baseman Luis Castillo at Yankee Stadium on June 12, 2009, when his misplay on Alex Rodriguez's two-out popup allowed two runs to score in a 9-8 Yankees win. Cabrera has seven errors this season, matching his 2016 total.
Brewers starter Zach Davies took a 1-0 lead into the fifth but allowed consecutive doubles to Curtis Granderson and Cabrera. After Conforto loaded the bases with a full-count walk, Reyes took a 2-2 fastball at the knees, then a fastball low for ball four. Davies was angry plate umpire Manny Gonzalez didn't call the 2-2 pitch a strike, yelling "It's on you!" at the ump as he walked off the mound. The Mets have nine bases-loaded walks - triple their total last year.
Eric Thames singled in the first and tripled past Bruce in right field in the fifth. Thames had been hitless in 19 at-bats and 2 for 27 with a pair of singles since returning on May 18 from strep throat.
Salas, who turned 32 on Tuesday, lined a single to right in the sixth for his first big league hit. He had been 0 for 4 in eight seasons.
Pill's second pitch hit Keon Broxton in the back; Pill became first Mets pitcher to hit his first batter in his initial big league start, according to the Elias Sports Bureau.
Cuban OF-INF Ernesto Martinez Jr. will receive an $800,000 signing bonus as part of his minor league contract with the Brewers, a deal announced last weekend.
Mets: LF Yoenis Cespedes not play for the fourth straight day after appearing in the first game of an injury rehabilitation assignment with Class A St. Lucie. He has been on the DL since April 28 with a strained left hamstring and felt soreness in his right quadriceps while running the bases Friday.
RHP Jacob deGrom (4-1) starts Wednesday night after beating Pittsburgh on Friday and becoming the first Mets pitcher to reach the ninth inning this year. RHP Junior Guerra (0-0) will be making his third start this season for the Brewers.