David Kohl-USA TODAY Sports

Andrew McCutchen drove in three runs and Luis Perdomo allowed just one hit in 3 1/3 scoreless innings of relief as the visiting Milwaukee Brewers defeated the Cincinnati Reds 5-3 on Friday night.

The Brewers (81-70) have won three straight and remain 2 1/2 games behind the Philadelphia Phillies (83-67) and San Diego Padres (83-67) for the third and final National League wild-card spot. The Phillies beat the Atlanta Braves on Friday and the Padres played the Colorado Rockies later Friday night.

Perdomo (3-0) struck out four and didn't issue a walk to stifle the Reds (59-92), who have lost six of their past eight games.

All nine hitters in the Brewers' starting lineup recorded a hit. Kyle Farmer led Cincinnati with a two-run double, and Stuart Fairchild added a pair of hits.

Following back-to-back singles from Rowdy Tellez and Hunter Renfroe to open the fifth, McCutchen's one-out fielder's choice gave Milwaukee a 3-2 lead and chased Reds starter Luis Cessa from the game.

Cessa (4-4) surrendered three runs (two earned) on six hits through 4 2/3 innings. He walked four and fanned three.

Insurance came in the seventh in the form of a two-run double from McCutchen that gave the Brewers a 5-2 advantage.

Alejo Lopez had an RBI fielder's choice in the eighth to pull Cincinnati within two. It could have been a double play, but second baseman Kolten Wong's errant throw allowed Lopez to reach.

Devin Williams came on to get the last out of the inning and struck out the side in the ninth to earn his 14th save.

Cincinnati wasted no time getting its offense going, striking twice in the home half of the first. Jonathan India drew a leadoff walk and Spencer Steel followed with a single before Farmer drove both of them home with a double.

But that lead didn't last long.

Victor Caratini laced an RBI double in the top of the second, easily scoring McCutchen. Luis Urias was originally held at third, but a poor throw to the plate from right fielder Aristides Aquino brought him in to even things at 2.

Brewers starter Eric Lauer scuffled early and lasted just 2 2/3 innings, allowing two runs on five hits and three walks. He struck out three.

More must-reads:

TODAY'S BEST
Heat may be cooling on Jimmy Butler's long-term future
NFL insider defends former Steelers QB Kenny Pickett from 'bust' label
Nuggets may miss this player as postseason run continues
Report: Russell Westbrook situation 'far more challenging' than previously thought
Kansas City Chiefs release former second-round pick at WR
NHL announces finalists for 2024 Lady Byng Trophy
Giannis Antetokounmpo refutes claim by HC Doc Rivers
Former Pro Bowler attempting comeback with NFC East team after two seasons out of action
Vikings' J.J. McCarthy wanted one team to draft him
Watch: Prospect stunned, confused after being removed mid-game due to trade
Rangers lose two-time All-Star starting pitcher to injury
Three offseason moves the Giants must make
Mavericks' Luka Doncic gets payback, knocks out Clippers
Lakers fire HC Darvin Ham after disappointing season
Pius Suter's late goal sends Canucks to second round
Marlins trading away two-time All-Star as fire sale may already be underway
Doc Rivers, Giannis Antetokounmpo contradict each other on star's injury
Caitlin Clark's strong WNBA debut dismisses concerns about transition to pros
Dolphins add another star playmaker on offense
Yankees' Aaron Judge addresses offensive woes creeping into May