MIAMI (AP) - After pitching around six walks in six scoreless innings, Tom Koehler was ready to turn the game over to Miami's bullpen. His faith was not misplaced.
Three relievers completed a two-hitter by combining for three perfect innings, and the Marlins beat the Colorado Rockies for the third day in a row Sunday, 3-0.
The only runs came on one swing — Marcell Ozuna's 13th homer in the sixth inning. That was shortly after Koehler had exited without protest for a pinch hitter, even though he had thrown just 92 pitches.
"Normally with 90 pitches, you're fighting to go back out there," Koehler said. "This is one that probably felt closer to 120. Today was a grind from the beginning. Not the best I've thrown, but I was able to make some big pitches when I needed to."
While Koehler (6-6) labored with a career-high walk total, the bullpen breezed through the Colorado lineup again. Miami relievers have allowed one hit in 13 scoreless innings in the first three games of the series.
"Those guys have been throwing the ball tremendously, and I don't see any reason why that would stop," Koehler said. "We've got a lot of good arms down there."
The Marlins (37-32) climbed five games above .500 for the first time since May 8, 2014, and moved ahead of the New York Mets into second place in the NL East. They'll try for a four-game sweep Monday.
"We can enjoy this one for a few minutes," manager Don Mattingly said, "but if you get three, you have to get greedy."
Left-hander Tyler Anderson (0-1), making his second career start, matched zeroes with Koehler until the sixth. After Derek Dietrich walked and Martin Prado singled, Ozuna greeted right-hander Miguel Castro with a homer for his third hit.
Rockies manager Walt Weiss didn't second-guess his decision to bring in Castro to face Ozuna.
"That's a matchup I'm looking at before the inning starts," Weiss said. "I'm certainly not going to let Ozuna face a lefty; he mauls left-handers. Castro got into a bad count and threw a flat fastball that was center cut."
After the Rockies stranded seven runners against Koehler, they failed to reach base against the Marlins' bullpen. A.J. Ramos pitched the ninth for his 31st save in a row, including 22 this year.
The Rockies, who began the series leading the NL in batting, have totaled 11 hits and no homers in the series. They managed only one hit Friday.
"We'll get it right offensively," Weiss said. "We've struggled here historically scoring runs, and that has certainly been the case in this series."
Charlie Blackmon is 0 for 12, DJ LeMahieu is 1 for 11, Mark Reynolds is 0 for 8 and Trevor Story is 1 for 9.
Koehler pitched at least six innings for the fifth start in a row. He has an ERA of 2.59 over his past nine starts, lowering his ERA for the season to 3.92.
Koehler lowered his ERA in five career starts against Colorado to 1.59.
A third strike bounced away from Marlins catcher Jeff Mathis to start the ninth, and he scrambled and threw from his knees to retire Story at first.
"That was not only a good play, it was a big play," Ramos said. "If that guy gets on, a lot of things can happen."
Marlins slugger Giancarlo Stanton went 1 for 4 and has six hits in the series — all singles — to hike his average to .211.
Marlins RHP Paul Clemens, recalled Sunday from Triple-A New Orleans, will pitch in the majors for the first time since 2014 when he starts Monday against Colorado LHP Jorge De La Rosa (3-4, 7.61 ERA).