HOUSTON -- Tampa Bay manager Joe Maddon can't remember a victory in which his team looked so good and so bad at the same time.
Houston native Jeff Niemann struck out five and won his fifth consecutive decision, Dioner Navarro had a two-run double and the Rays got away with some sloppy play to beat the Astros 4-2 on Saturday night.
Still, behind Niemann and just enough offense, the Rays sent the last-place Astros to their seventh loss in nine games.
"You talk about two games within one," Maddon said. "We did so many tremendous things and some awful things. The end result was the win. That was one of the most bizarre victories I've ever been associated with."
The 27-year-old Niemann (4-0), a former first-round draft pick out of Rice, allowed four hits with one walk in seven innings. He hasn't given up more than three earned runs in any of his nine starts.
Niemann was an Astros fan growing up, and secured 30-40 tickets for friends and family. Pitching coach Jim Hickey came out to calm him in the first inning, and Niemann seemed in control the rest of the way.
"It was great that I got a chance to do that. It was fun," Niemann said. "Sometimes, you go out there and that little bit of doubt gets in your head and you tend to do something extra, or something else. I didn't have to."
Rafael Soriano shut out the Astros in the ninth for his 12th save. Tampa Bay leads the majors with an 18-5 road record and improved to 7-2 in games Niemann has started.
Left-hander Wandy Rodriguez (2-6) gave up three runs and six hits in six innings but once again got little offensive support. The Astros have averaged 1.3 runs in Rodriguez's six losses this season.
"We had good pitching again," Houston center fielder Michael Bourn said. "Our pitching has been holding us up for a while. The whole year, basically, we've had tremendous pitching from all our starters and our relievers. We just couldn't scuffle another run in the end."
The Rays loaded the bases with two outs in the first inning, after Crawford singled and was picked off. Upton flied out to end the threat, another missed opportunity for the Rays, who went 0 for 12 with runners in scoring position during Friday's 2-1 loss.
Rodriguez walked Upton and hit Gabe Kapler with a pitch with two outs in the fourth. Pence could not make a diving catch on Navarro's shot to right and both runners scored to put Tampa Bay ahead.
Navarro came in hitting .184 and went through an 0-for-22 slump in April. The way that his season was going, Navarro was surprised that Pence didn't make the play.
"It wouldn't have been weird for him to catch that ball," Navarro said, "especially with me hitting."
But bad baserunning cost the Rays again in the sixth, after Upton walked and advanced to third on Kapler's single. Rodriguez caught Kapler leaning toward second and threw to Lance Berkman for what would've been another easy pickoff. Instead, Berkman threw home and catcher Humberto Quintero tagged out Upton, who made an ill-fated dash for the plate.
"We got thrown out, we got picked off, we screwed up a play one time," Maddon said. "But again, every play we screwed up, it hasn't lacked effort."
Berkman homered to center in the sixth, his fifth of the season. It was the first home run allowed by Niemann in five starts.
Houston had only two other baserunners between the third and seventh -- Berkman walked in the third and Pence reached on an error by shortstop Jason Bartlett. Niemann struck out Tommy Manzella and pinch-hitter Cory Sullivan to end the seventh and Grant Balfour relieved for the eighth.
Zobrist drew a bases-loaded walk from Wilton Lopez in the ninth.
The Rays have won 10 of 11 games this season when their opponent has started a lefty. ... The Astros have hit 999 home runs at Minute Maid Park, which opened in 2000. Berkman leads all players with 149 homers at the stadium.