Starling Marte grounded an RBI double over third base off Hunter Strickland with one out in the ninth, scoring Nimmo from first to tie the game at 3.
Dominic Smith's double off Dauri Moreta (0-2) drove home pinch-runner Ender Inciarte from second base with the go-ahead run in the 10th. James McCann delivered an RBI single before Nimmo's shot sent the NL East leaders to their 20th series win this season - they took two of three from the last-place Reds.
''Even though it's Cincinnati and it's a hitter's ballpark, it's huge,'' Nimmo said. ''We know we're a good offense but we also faced good pitching the last few days. We know we're capable of it. This does nothing but add confidence to the offense and for the guys in the clubhouse.''
Pete Alonso went 4 for 5 with a double. Nimmo had three hits and scored three times from the leadoff spot as New York remained 2 1/2 games ahead of second-place Atlanta.
A loss would have left the Mets with their slimmest lead since April 16.
Adam Ottavino (3-2) struck out two in a hitless ninth for the win.
Nick Senzel hit a two-run homer for the Reds, who have the worst record in the National League.
''You have to play all nine innings, sometimes 10,'' Cincinnati manager David Bell said. ''That's what we did and that's what the Mets did. They got us tonight, but we gave ourselves a chance to win.''
Facing a hard-throwing rookie for the third straight day, the Mets couldn't get much going against Graham Ashcraft, who allowed 10 hits but only two runs in six innings.
Cincinnati threw Hunter Greene, Nick Lodolo and Ashcraft in succession against the Mets, who were shut out 1-0 on Tuesday night.
''They made us scratch and claw this entire series,'' Nimmo said. ''Hats off to those starters we faced the past few days. It was really important to pull it out at the end today.''
Mets lefty David Peterson came off the paternity list to pitch following the birth of his son, but his first career start against Cincinnati lasted only 3 2/3 innings. He allowed three earned runs and walked five.
Senzel, who had one homer through his first 181 at-bats this season, homered for the second time in three games to put the Reds ahead 2-1 in the second.
Adonis Medina permitted only one hit in three scoreless innings of relief to keep it a one-run game. But the Mets didn't break through against the worst bullpen in baseball until the ninth.
''We had a lot of hits, a lot of opportunities. It was frustrating not to be able to break through,'' manager Buck Showalter said. ''We're getting people out there and just not cashing in. It's a good win for the trip back home tonight.''
New York's only runs prior to the ninth came on Jeff McNeil's RBI single in the first and a broken-bat single by Tomas Nido that drove home a run in the fourth.
Things got testy in the 10th when Moreta brushed back Eduardo Escobar with a pitch, but both players were restrained before any others left the dugouts.
After a whirlwind week with the birth of his son, Peterson was able to throw a bullpen and get one good night's sleep before Wednesday's start. ''I was able to get in a decent time last night and catch up on some sleep,'' he said. ''I'm glad my wife and him are healthy and everything's good back home. He's a blessing. Being a father is the most amazing thing that's happened to me.''
NO SLEEP 'TIL FLUSHING
Showalter wasn't happy the Mets had a night game in Cincinnati before starting a four-game home series Thursday night against Miami. ''I don't know how they get away with that,'' he said. ''The schedule is what it is. I don't think it's good for the game, quite frankly. Still a great way to make a living, even if you don't sleep.''
Thursday's starter, Trevor Williams, traveled back to New York ahead of the team.
Mets: RHP Chris Bassitt remains on track to start Friday against the Marlins at Citi Field. Bassitt was placed on the COVID-19 injured list last Friday.
Reds: 1B Joey Votto did not play due to tightness in his lower back. ... RHP Tyler Mahle has a strained right shoulder and was placed on the 15-day IL, retroactive to Sunday. ... DH Jonathan India was hit on the left ankle by a pitch leading off the game and exited an inning later. X-rays were negative.
Mets: Williams (1-5, 4.34 ERA) pitches Thursday night against Miami at Citi Field.
Reds: LHP Mike Minor will start the first game of Thursday's doubleheader against the Pirates, which makes up a May 6 postponement. The starter for Game 2 is undetermined after Mahle went on the IL.
More AP MLB: https://apnews.com/hub/mlb and https://twitter.com/AP-Sports
Copyright 2022 STATS LLC and Associated Press. Any commercial use or distribution without the express written consent of STATS LLC and Associated Press is strictly prohibited.