Barnhart banged the Reds second hit of the game, a double leading off the seventh, but was stranded at third base.
Barnhart then delivered the team’s third hit, a two-out double in the ninth, but Jose Peraza, the potential tying run, flied to right field to end it.
Milwaukee starter Junior Guerra struck out Billy Hamilton (0 for 4, three strikeouts), then walked the next two. Adam Duvall and Scooter Gennett both hit the ball hard, but both were caught deep in the outfield.
Mesoraco was hit by a pitch to open the second, but never budged off the first base bag. Votto singled with two outs in the third, the only hit off Guerra.
Amazingly, even though it was 0-0 and the Reds had only one hit, Milwaukee manager Craig Counsell lifted Guerra for a pinch-hitter with one out and one on in the seventh.
Guerra pitched 6 2/3 innings and gave up no runs, one hit, walked three and struck out seven.
Cincinnati starter Sal Romano was just as good as Guerra and took a two-hit shutout into the sixth inning.
But he walked Lorenzo Cain on a full count to open the sixth. Then, strangely, with Cain standing on first base, Romano threw a pickoff throw. It was high, wide and ugly past first baseman Votto and Cain took second.
Perhaps unnerved by his faux pas, Romano’s next pitch was a belt-high 94 miles an hour fastball to Eric Thames and Thames deposited it into the right field seats, the two runs the Brewers needed. Thames hit 10 home runs against the Reds last season.
The Reds, who dropped to 3-and-14 on the season, were forced to face strikeout artist Josh Hader the last two innings.
Of the six batters he retired, three were strikeout victims — Hamilton, Votto and Scooter Gennett.
Relief pitcher Amir Garrett continued to his scoreless streak with a scoreless inning. He replaced Romano in the sixth with a runner on base and no outs. He gave up a single to put runners on second and first with no outs. But he coaxed a double play out of Domingo Santana and struck out Eric Sogard on a full count.
During the game, the Reds announced a minor trade that sent pitcher Ariel Hernandez to the Los Angeles Dodgers. The Reds acquired two minor leaguers, right handed pitcher Zach Neal and first baseman Ibandel Isabel. Neal will be sent to Class AAA Louisville and Isabel to Class A Daytona.