Updated

Anibal Sanchez had been through the no-hit routine before, so he was well aware of the possibility as he dominated the Colorado Rockies.

"After six innings I said, 'Three more innings for a no-hitter,'" Sanchez said.

He came close, but Dexter Fowler led off the ninth with a broken-bat single. Sanchez then got the final three outs for a one-hitter and the Florida Marlins beat the Colorado Rockies 4-1 Friday night.

Sanchez 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 one-hitter was the second in the majors this season. Dan Haren of the Los Angeles Angels had one in a 2-0 victory over Cleveland on April 12.

Sanchez (1-1) had a career-high nine strikeouts, and the run off him was unearned. The hit off Sanchez came on his 116th pitch and first of the ninth. Fowler pulled a single to right field past second baseman Omar Infante to end the no-hit bid.

"To see it go on a broken bat is kind of disheartening," Marlins catcher John Buck said, "but it shows how hard it is to do. It's just the way it rolls."

Added Fowler: "That was my best swing of the night, but he blew my bat up."

Fowler was then doubled off first when left fielder Scott Cousins made a diving catch of Jonathan Herrera's liner.

"A heck of a play," Rockies manager Jim Tracy said. "If that ball falls, now you have a three-run game and first and second, nobody out."

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 straight.

Rockies starter Jhoulys Chacin (3-1) allowed four runs in five innings.

Sanchez walked three, including Fowler to lead off the game. He 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."

Few witnessed Sanchez's close call. Announced attendance was 15,069, but the actual crowd totaled just 8,912.

A 27-year-old Venezuelan, Sanchez pitched a no-hitter Sept. 6, 2006, against the Arizona Diamondbacks in just his 13th career start. He required shoulder surgery the following year and slowly regained his form.

He achieved career-high totals in wins and innings last year, when he went 13-12 with a 3.55 ERA. This season he was 0-1 with a 5.51 ERA in three starts before facing the Rockies.

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."

Notes: The Marlins have had four no-hitters in team history, the last by Sanchez. ... 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.