SAN FRANCISCO -- For the second time in a week, Mark Teixeira thought he had a game-winning or go-ahead hit in the ninth inning for Texas.
Both times, the umpires ruled otherwise.
Teixeira hit a liner down the right field line with the bases loaded in the ninth Tuesday night that appeared to land fair off the chalk but it was ruled foul, preserving the San Francisco Giants' 5-3 victory over the Rangers.
Texas would have taken the lead on the play.
Infuriated with the call, Teixeira sprinted toward first base umpire Tim Hallion to argue in an animated tirade and was thrown out -- the third of four Rangers ejections on this wild night.
Last Tuesday night, it looked as if Teixeira connected for a two-run homer in the bottom of the ninth, but as the ball passed over or near the right field foul pole, first base umpire Bill Welke ruled it foul.
"That was a separate incident, but that still doesn't make it any easier," Teixeira said. "Everyone saw it. ... I honestly couldn't believe it. It blew my mind that that was the call. I didn't know what to do."
The crazy ending overshadowed another fine performance by Giants starter Matt Morris, who won three straight starts for the first time this season and improved to 7-0 in interleague play over the last two years.
Randy Winn hit a three-run homer in the second inning, doubled and singled twice for the Giants.
Morris (6-7) pitched eight strong innings to remain undefeated in eight interleague starts since beating Oakland on June 15, 2004, while with St. Louis. He gave up six hits, struck out seven and walked two. He has a 2.19 ERA in June.
Barry Bonds returned to the lineup for the Giants after leaving Sunday's game against the Athletics following the second inning with irritation in his left knee.
Kevin Millwood (8-4) intentionally walked Bonds in the first with Winn on third and two outs, drawing boos from the crowd. Bonds doubled to right-center to start the third and scored on Mark Sweeney's single. Bonds was intentionally walked again in the fourth, and walked leading off the seventh to reach base safely in 11 straight plate appearances -- going 3-for-3 with eight walks during that stretch.
Jason Ellison replaced him in left field to start the eighth.
Sweeney had three singles, drove in a run and scored, and Eliezer Alfonzo had two hits and scored a run for the Giants, who are 6-7 against the American League this season.
Texas' Michael Young struck out looking to end the fifth inning against Morris and threw his bat to the ground and was immediately ejected by home plate umpire Larry Young.
Rangers manager Buck Showalter immediately sprinted out of the dugout and began yelling in the umpire's face and was quickly ejected. Showalter also walked down the third base line and bowed with both arms toward the Giants' dugout.
Showalter, who had already been out twice previously to argue, was ejected for the second time this season. It was the first for Young.
Texeira and Mark DeRosa were ejected in the ninth.
"We had two guys thrown out who had never been thrown out before," Showalter said. "It's embarrassing for baseball. It was an easy call. It hit the chalk line."
After Tim Worrell allowed a run and two hits in the ninth, Jeremy Accardo relieved and walked DeRosa and gave up an infield RBI single to Ian Kinsler that stayed fair down the third base line.
DeRosa, who was lifted for a pinch runner after his walk, was ejected after he ran out to protest.
Larry Young said he did not "get a good look" on the play. The Rangers were reviewing it in their clubhouse afterward.
"But as far as we could tell, it was foul," Larry Young said. "I believe the call was correct."
Gerald Laird finished Teixeira's at-bat and flied out to left to end the game.
Giants manager Felipe Alou wasn't sure.
"I can't see that far," he said. "Some guys said it was fair or close, some guys said it was foul. ... I know I went home many times when I knew I won."
The Rangers loaded the bases in the seventh with no outs but managed only one run - and it was unearned after Rod Barajas reached on third baseman Pedro Feliz's fielding error.
Millwood, who no-hit the Giants in 2003 while with the Philadelphia Phillies, matched his career high for hits allowed with 12 in six innings on the way to losing on the road for the first time in eight starts this season. He allowed five runs, struck out six and walked three.
He had won his last five decisions dating to a loss to the Minnesota Twins on May 9, and was 2-0 in interleague outings.
Barajas homered in the ninth and Kevin Mench had two hits for the Rangers, who lost two of three to Colorado in a weekend series.
Morris faced Texas for the first time. ... Millwood is 5-3 in nine career starts against San Francisco. He also gave up 12 hits on April 19 and 29. ... Giants RF Moises Alou missed his eighth straight game with lower back spasms. ... San Francisco SS Omar Vizquel was held out of the lineup with what trainer Stan Conte called "muscular tightness" in his back. ... Winn is 9-for-14 (.643) lifetime against Millwood, who fell to 5-1 on the road this year. ... RHP reliever Nick Massett made his major league debut for Texas.