In his first three trips to the plate, Dexter Fowler hit the ball just once. Anibal Sanchez had him flummoxed.

"It was brutal," Fowler said. "I was swinging at bad pitches. I fouled one ball back."

Finally in the ninth inning, Fowler and the Colorado Rockies broke through. Fowler's broken-bat singled ended a no-hit bid by Sanchez, but the right-hander got the final three outs to give Florida a 4-1 victory Friday night.

"He had some good stuff," Fowler said. "He was throwing everything for strikes."

Sanchez (1-1) had a career-high nine strikeouts, and the run off him was unearned. He threw a no-hitter for Florida as a rookie in 2006 and shook off the disappointment of falling just shy of another.

"It was awesome to have the opportunity to almost throw again a no-hitter," Sanchez said. "I'm excited."

The hit off Sanchez came on his 116th pitch, and the first of the ninth. Fowler pulled a single to right field past second baseman Omar Infante.

"That was my best swing of the night," Fowler said. "But he blew my bat up."

Fowler was doubled off first on a lineout by Jonathan Herrera. When Carlos Gonzalez grounded out, Sanchez had the fourth complete game of his career and his first since July 29.

"He came out today with some good pitches — inside corner, outside corner, first-pitch strikes," Herrera said. "He made us chase those pitches."

Gaby Sanchez and Chris Coghlan homered for the Marlins, who won their fourth consecutive game. Rockies starter Jhoulys Chacin (3-1) allowed four runs in five innings.

"The first couple innings, I couldn't control my fastball," Chacin said. "Everything was off the plate, everything was a struggle. I couldn't make an adjustment the first couple innings."

Sanchez had a rough start, too. He walked three, including Fowler to lead off the game, but was unfazed when a two-out fielding error by first baseman Gaby Sanchez allowed Fowler to score.

"Anibal has a very strong mental approach," manager Edwin Rodriguez said. "After that first inning, it takes mental toughness to keep his composure, and he did a great job."

After Colorado took the early lead, Coghlan led off the first with his second home run of the season. The Marlins made it 3-1 on a run-scoring sacrifice bunt by Sanchez and an RBI groundout by Coghlan.

Gaby Sanchez's home run stretched the Marlins' lead to 4-1.

Meanwhile, their pitcher cruised along with a mix of curves, sliders, changeups and cutters to go along with his mid-90s fastball.

"Everything was working," Sanchez said. "I'm throwing harder than last year."

In the third, he benefited from an inning-ending double play. He struck out the side in the sixth.

With one out in the seventh, Troy Tulowitzki hit a hard grounder off Sanchez's right leg and the ball bounced toward first base. Sanchez scrambled to the ball and beat Tulowitzki to the bag for the out. Rodriguez, pitching coach Randy St. Claire and a trainer tended to Sanchez, but he stayed in the game.

He walked the next batter before he struck out Seth Smith looking to end the inning.

Notes: The Marlins have had four no-hitters in team history, the last by Sanchez five seasons ago. ... It was Coghlan's fifth career leadoff home run. ... Before the game, Marlins IF Ozzie Martinez was recalled from Triple-A New Orleans to replace OF Logan Morrison (left foot sprain), who was placed on the 15-day disabled list, retroactive to April 20. ... Ramirez found himself in an unusual play in the seventh after he struck out and accidentally sent his bat into the stands. He walked in front of catcher Chris Iannetta's path resulting in Infante being called out attempting to steal second base due to batter interference.