ST. LOUIS — Miles Mikolas was prepared to change jerseys — but he was pitching too well to pull the trigger.
The Cardinals right-hander had four uniform tops waiting to replace the one he knew would be drenched in sweat as the heat index approached 100 degrees.
"I was ready," Mikolas said. "But the first jersey, it was really working for me. So I stuck with it — a little superstition involved."
Mikolas (7-1) continued his hot start in the steamy conditions on Thursday, allowing an unearned run in seven innings to lead St. Louis past the Miami Marlins 4-1. He struck out five and walked one, lowering his ERA to 2.27, as the Cardinals salvaged the series finale after a pair of losses.
Mikolas, coming off a 4-0 loss to Pittsburgh, has pitched at least six innings in 10 of 12 starts this season.
Jordan Hicks pitched around a walk and a hit in the eighth, topping 100 mph on nine of 18 pitches, and Bud Norris finished the four-hitter with a perfect ninth for his 12th save in 13 chances.
Jose Martinez hit a two-run homer in the first, giving him a team-high 35 RBIs.
Luke Voit added a pinch-hit homer leading off the seventh to push the lead to 4-1.
Trevor Richards (0-3), who grew up in Aviston, Illinois, 50 miles from St. Louis, gave up three runs on seven hits in five-plus innings.
Mikolas, who improved to 4-0 in day games, retired 14 successive batters before right fielder Dexter Fowler dropped Starlin Castro's fly ball in the sixth.
"When he's in that zone, he's pretty impressive," St. Louis manager Mike Matheny said. "He was clean all the way through, putting pitches where he wanted to on both sides."
Mikolas signed with the Cardinals as a free agent on Dec. 5, 2017, after three seasons with the Yomiuri Giants of the Japanese Central League.
He has exceeded even his own expectations.
"I had all the confidence that I could be successful at this level," Mikolas said. "But it's still a bit of a surprise."
Miami manager Don Mattingly said Mikolas controlled the game.
"He can move the ball the other way and then he elevated," Mattingly said. "That breaking ball he throws, it's big."
Justin Bour cut the lead with an opposite-field RBI double in the sixth after Fowler's error.
Marcell Ozuna hit an RBI single in the bottom of the sixth.
Richards was making his first appearance at Busch Stadium since pitching in a high school all-star game in 2011.
"I felt pretty good. I command the fastball pretty well," Richards said. "There's obviously a couple I would like back. But I was very excited just to be back in St. Louis."
The Cardinals lost the first two games of the series by a combined 18-7.
"We needed this one," Martinez said. "You never want to get into a habit of losing."
TRIBUTE TO RED
The No. 2 of Hall of Famer Red Schoendienst was displayed in the dirt behind second base. Schoendienst, who died Wednesday at age 95, spent 67 years in the Cardinals organization as a player, coach, manager and special assistant. He signed with the Cardinals as an infielder in 1945 and won a World Series as St. Louis' manager in 1967.
Marlins: Richards was recalled from New Orleans, and RHP Tyler Cloyd was optioned to the Triple-A team.
Cardinals: RHPs Greg Holland and Matt Bowman began rehab assignments with Triple-A Memphis. Holland has missed 11 games with a right hip injury. Bowman has been out 19 games with blisters on his right index and middle fingers.
Marlins: LHP Caleb Smith (4-6, 4.03) will face San Diego LHP Eric Lauer (2-3, 6.82) in the first game of a three-game set on Friday in Miami. Smith leads major league rookies with 74 strikeouts.
Cardinals: RHP Luke Weaver (3-5, 4.11) will face RHP Matt Harvey (1-4, 5.79) in the first of a three-game series on Friday in Cincinnati. Weaver has not won since May 11.