DENVER (AP) -- Franklin Morales didn't try to paint corners or make perfect pitches.
Instead, his strategy was relatively simple: Just pitch the ball and see what happens.
In this instance, a lot of good things.
Morales was masterful on the mound as he outdueled Madison Bumgarner, leading the Colorado Rockies to a 2-1 win over the San Francisco Giants on Tuesday night.
"Frankie's a tough competitor," manager Walt Weiss said. "He was absolutely huge tonight."
Morales (2-1) knew it was his night when he unleashed his first sinker and it danced all over the place. He decided right then and there that he wasn't going to be too fine with his splitter or his cutter or even his sinker, just let the pitch do what it naturally does.
The hard-throwing lefty allowed five hits over seven innings, which matches the longest outing of his career. His only mistake was a hanging slider to Hunter Pence in the fifth, which he hit for a homer.
"I wanted to make sure the hitter is uncomfortable with my pitches," Morales said.
Bumgarner (2-2) was nearly as effective as Morales, his only slipups on fastballs that Troy Tulowitzki and Nolan Arenado hit for homers, with Arenado's solo shot in the fifth putting the Rockies ahead for good. Bumgarner allowed nine hits in eight innings.
It was the first complete game by a Giants starter in 2014 and third of Bumgarner's career.
"I'm not frustrated for myself. We should be winning all these games right now, but just going through a rough patch," said Bumgarner, whose team has dropped five of six. "It's just about getting out of it as quick as you can."
Morales hasn't fared all that well against San Francisco in his career, entering the game with a 0-3 mark and a 6.57 ERA. But he handcuffed the Giants most of the game.
He worked his way into a jam in his seventh and final inning when he allowed a two-out double to his counterpart, Bumgarner.
Morales struck out Angel Pagan with a sinking cutter - his 99th pitch of the night - to end the threat. Morales pumped his fist and let out a scream before heading toward the dugout.
"All game I was throwing only fastballs away to (Pagan)," Morales explained. "I was like, `OK, it's time to throw my cutter down and in. He's not looking for that pitch.'"
No, he wasn't. Pagan wasn't the only Giant guessing at Morales' assortment of pitches.
"Morales, he's just got good stuff," said Pence, who hit his second homer of the season. "A lot of life on his fastball."
Things got a little shaky for Colorado in the eighth, when the Giants had runners on first and second with one out. Rex Brothers was summoned and enticed Pablo Sandoval to hit into a double play to quell the rally.
Same thing with the ninth, when LaTroy Hawkins took over after Brothers got the first out of the inning.
Hawkins walked pinch hitter Brandon Crawford and allowed a single to Gregor Blanco, who was also pinch hitting. Hector Sanchez, the third straight pinch hitter, struck out and Pagan bounced out to short to end the comeback bid.
Arenado hit a solo shot into the seats in left to extend his hitting streak to a career-best 13 games. He's hitting .365 during the streak, with two homers and six RBIs.
Tulowitzki flashed his fielding skills in the top of the fourth and hitting proficiency in the bottom half.
With runners at first and second and one out, the smooth-fielding shortstop dove in the hole to snare Joaquin Arias' grounder, quickly getting up and throwing to second for a force out. That prevented a potential run from scoring. Tulowitzki then caught Ehire Adrianza's shallow fly to left to get the Rockies out of the sticky situation.
Leading off in the bottom of the frame, Tulowitzki homered to left-center. It was his third homer of the season.
Mixing a 93-mph fastball with a late-moving cutter, Bumgarner kept the Rockies off balance most of the night in a hard-luck loss.
"Bum pitched great. He did a real nice job," Giants manager Bruce Bochy said. "Complete game, two runs in this ballpark. That's a nice effort."
NOTES: Adrianza wore jersey No. 6 instead of No. 53. ... The last Giants starter to throw a complete game in a loss was Barry Zito on June 18, 2010, at Toronto. ... RHP Matt Cain (0-3) searches for his first win of the season in the series finale Wednesday. The Rockies will throw RHP Tyler Chatwood (1-0). ... The Rockies have won five of six. ... The previous time Morales pitched seven innings was June 28, 2012, at Seattle when he was with Boston.