ARLINGTON, Texas (AP) -- Josh Hamilton pumped his right arm as he rounded first base, as much in relief as celebration. The real fun came when he was mobbed by his teammates at home plate.
"I always see guys on TV tossing their helmet and jumping into the crowd," Hamilton said after his ninth-inning homer gave the Texas Rangers a 5-4 victory over the Los Angeles Angels on Wednesday night. "Seeing all those guys at the plate, that's an awesome feeling."
The All-Star outfielder with an incredible comeback story ended a three-week homerless drought with a two-run shot with two outs in the ninth off major league saves leader Francisco Rodriguez.
With Michael Young on base after an RBI single, Hamilton lined a 3-1 pitch into the right-field seats for what he said was his first walk-off homer ever -- as an amateur or a pro. It also was his first homer in 70 at-bats over 19 games since June 17.
"There's been a drought on the home runs. At the same time, you can't think about when you're going to hit your next one," Hamilton said. "But that's why you keep battling, keep playing. Something always happens like that to remind you why you love the game."
Manager Ron Washington jumped on bench coach Art Howe's back when Hamilton connected.
"I knew it wasn't going to land on the field," Washington said.
The Rangers (48-44) moved four games over .500 for the first time since 2006, and got within 6 1/2 games of the AL West-leading Angels.
Hamilton is the former No. 1 overall draft pick by Tampa Bay in 1999 who was out of baseball for more than three seasons because of addictions to cocaine and alcohol. He has been sober for nearly three years, and last year finally made his major league debut with 19 homers in 90 games for Cincinnati.
The Reds traded Hamilton last winter, and Wednesday he played his 89th game for the Rangers. He leads the major leagues with 89 RBIs and was voted an All-Star starter by fans. He will participate in the Home Run Derby.
Rodriguez (0-2), who already had 35 saves, gave up three runs in only his third blown chance this season.
"Frankie's been right on all year and just really throwing the ball well and occasionally one's going to slip through the cracks," Angels manager Mike Scioscia said. "That's what happened."
Pinch-hitter Ramon Vazquez drew a walk to start the ninth before Ian Kinsler, the AL's top hitter, struck out. Frank Catalanotto grounded out, moving Vazquez to second before Young, who like Kinsler is going to the All-Star game as a reserve infielder, singled to get Texas within 4-3. After Young stole second, Hamilton hit a curveball over the wall.
"I put myself in that situation. I couldn't locate my pitches early in the inning," Rodriguez said. "I didn't make pitches early in the count. I think I fell behind every single one of them. If you do that, you're going to get hurt."
Jamey Wright (5-3), the fourth Texas pitcher used during a makeshift night on the mound, worked two scoreless innings.
Los Angeles went ahead 4-2 in the seventh when Juan Rivera quickly atoned for his defensive miscue with a tiebreaking two-run homer.
Marlon Byrd led off the sixth with a single to left, but Rivera let the ball get under his glove and roll to the wall. The two-base error allowed Byrd to get to third and he scored on a sacrifice fly by Jarrod Saltalamacchia to make it 2-2. Saltalamacchia reached base because right fielder Vladimir Guerrero dropped the ball for his first error this season.
Rivera, who had only seven RBIs and was hitting .188 in his 33 games before Wednesday, drove in Los Angeles' first run with a sacrifice fly in the second off Warner Madrigal, the converted outfielder from the Angels organization who made a surprise start.
Kinsler extended his hitting streak to 21 games with a leadoff single in the first. But he struck out three times after that.
Saltalamacchia drove in both Texas runs, including an RBI single in the fourth that got the Rangers within 2-1.
Madrigal, who spent his first seven professional seasons in the Angels organization, started for Vicente Padilla, who was put on the disabled list because of neck stiffness. The Rangers had planned to call up a Double-A pitcher for his major league debut, but opted instead to get through the game with relievers already on the roster.
Madrigal gave up four singles against 11 batters, but allowed one run over three innings in his first professional start. The stocky right-hander hit .272 with 34 homers in 301 games a minor league outfielder before making the switch to the mound midway through 2006.
Angels All-Star LHP Joe Saunders, who started Tuesday night, returned to California to be with his wife as they awaited the birth of their first child. ... Scioscia said before Wednesday's game he also planned to keep Gary Matthews Jr. on the bench Thursday. "It's good for Gary to take a little bit of a blow and try to regroup a little bit," Scioscia said. "He's not swinging the bat to his capabilities." Matthews' average slipped to .236 after going 5-for-30 over his last 10 games.