CINCINNATI — Masyn Winn homered, doubled twice and scored twice, Kyle Leahy tossed five shutout innings Tuesday night and the St. Louis Cardinals rolled past the Cincinnati Reds for a 3-0 victory.

Leahy (10-4) allowed only a one-out single to Sal Stewart in the first inning, a one-out single to Ke’Bryan Hayes in the third and a leadoff single to Dane Myers in the fifth during his outing to win his third straight start.

The right-hander struck out six and walked none but was pulled after 90 pitches. Leahy won his fifth straight decision for the Cardinals, who have won four of their past five and six of their past eight. St. Louis is now 4-2 on its season-long 11-game road trip.

Leahy has pitched exactly five innings in all three of his August starts, allowing three combined runs for a 1.80 ERA with 20 strikeouts and no walks.

Ryne Stanek, Gordon Graceffo, George Soriano and Riley O’Brien each threw a hitless inning of relief to complete the shutout, with O’Brien working a 1-2-3 ninth for his National League-best 32nd save in 37 chances.

Cincinnati starter Andrew Abbott (6-8) managed to work into the seventh inning, throwing 4⅓ scoreless innings before Winn’s line-drive home run to left field with one out in the fifth. Abbott worked out of a jam in the second after Blaze Jordan reached on an Elly De La Cruz error and Winn doubled when Jose Fermin grounded out to short.

Winn, who also had a pair of stellar defensive plays at shortstop, was at the heart of another rally in the seventh inning when he and Fermin laced back-to-back doubles for a 2-0 lead, chasing Abbott from the game. Abbott was charged with two runs on four hits in 6⅓ innings, striking out six and walking two.

St. Louis tacked on its final insurance run in the eighth inning on Joshua Báez’s sacrifice fly after Jordan Walker led off with a single and moved to third base on Alec Burleson’s double.