SAN FRANCISCO -- Standing atop the steps in the dugout waiting for his next at-bat, Troy Tulowitzki never saw the line drive coming off Colorado teammate Dexter Fowler's bat.
All the Rockies shortstop knows is that he's lucky he wasn't more seriously injured.
Tulowitzki had to leave the game after the freak accident in the eighth inning of Colorado's 3-2 loss to the San Francisco Giants on Monday night but is listed as day to day, one of the few things that went right for the Rockies as they continued their longest road trip of the season.
"I had no chance," said Tulowitzki, who briefly tried to remain the game before being replaced for a pinch runner after reaching base on a one-out infield single in the same inning he was hit. "Usually when a ball's hit like that, it's kind of off the end or jammed or something like that. That was a line drive. I really don't even know how it's possible but it happened to hit. Just bad luck."
X-rays taken after the game showed no bone break or major damage and Tulowitzki is listed as day to day.
That was good news for Rockies manager Jim Tracy, whose team lost for the ninth time in 10 games.
"All I can tell you is we dodged a serious bullet there," Tracy said. "If that ball would have been a couple of inches left, it might have hit him right in the kneecap. We were really fortunate."
Buster Posey hit a go-ahead RBI single in the eighth inning as the Giants matched their best winning streak of the season at three games.
Gregor Blanco hit a tying home run leading off the sixth for San Francisco and added a pair of singles, including one to start the rally in the eighth against loser Rex Brothers (1-2). Joaquin Arias then beat out an infield single when Rockies catcher Wilin Rosario tried to let the bunt up the first base line roll foul and it stayed fair. He rushed his throw to first and the ball got past Todd Helton for an error that moved Blanco to third.
Sergio Romo (2-0) struck out Michael Cuddyer with runners on second and third to end the eighth for the win. Santiago Casilla finished for his eighth save in nine chances despite allowing an unearned run in the ninth.
Casilla retired Chris Nelson on a groundout to end it with the bases loaded.
Tulowizki would have been batting in Nelson's spot had he not got injured.
After being examined by athletic trainer Keith Dugger, Tulowitzki stayed in the game and took his at-bat. The star shortstop reached on an infield single against Javier Lopez but hobbled to the base, clearly in pain. Tracy and Dugger hustled out to first and Tulowitzki was lifted for pinch-runner Nelson.
"Your stomach kind of drops," Rockies starting pitcher Christian Friedrich said. "He's the leader of the team and a guy I've looked up to even before I started playing professionally. Just to see some freak accident like that happen, your stomach drops and you hope it's just a little bruise or something like that."
Brett Pill singled in an insurance run in the eighth for the Giants after he couldn't come through earlier.
In the sixth, Posey hit a two-out single and Angel Pagan doubled to bring up Pill with runners on second and third, but he struck out. Posey snapped an 0-for-10 funk with just his fourth hit in 28 at-bats.
Rosario hit a towering home run deep into the left-field bleachers to start the fourth for Colorado, which missed several other scoring opportunities in losing its fourth in a row and ninth in 10. The Rockies are wrapping up a rough eight-game road trip with this short two-game series.
Friedrich delivered the kind of outing Colorado desperately needed in just his second career start. The left-hander struck out 10 and walked one, allowing six hits and one run in seven innings. He won in his major league debut last Wednesday, allowing two runs – one earned – on five hits with seven strikeouts and one walk in six innings at San Diego.
His consistency came at a good time for Colorado. A day earlier, the Rockies walked 10 batters, all during a span of five innings, and six of them scored in Sunday's 11-5 road loss to the Los Angeles Dodgers that led to a sweep.
Friedrich got a nice over-the-shoulder catch from second baseman Marco Scutaro on which he hustled back into shallow left to snag Melky Cabrera's flyball.
Giants starter Ryan Vogelsong walked a season-high five batters and allowed three hits in seven innings. He still hasn't lost to the Rockies for his career, going 4-0 with a 1.07 ERA in five starts, including 3-0 with a 0.64 ERA in four at home.
The right-hander walked three in the first and two more with two outs in the third to load the bases. Vogelsong received a mound visit from pitching coach Dave Righetti before facing Michael Cuddyer.
The Giants ended a stretch in which they had lost the first game of a series in the previous six openers. San Francisco is just 4-8 in those games this year – with this win marking the club's first victory in a series opener since beating the Mets on April 20 in New York.
Cabrera had his 11-game hitting streak snapped with an 0-for-4 night for the Giants.
Notes: Fowler didn't start as a precaution a day after he left the game following the fourth inning because of blurred vision, the result of a throw to second by catcher A.J. Ellis that struck him as he advanced. He was checked for a concussion. ... The Giants sold out their waterfront ballpark for the 100th straight game dating to the final series of the 2010 season against San Diego.