And factoring in the Rangers' recent road woes, it was virtually impossible.
"There's not much room for error with Oswalt out there," said Rangers manager Buck Showalter, whose club has dropped a season high-tying five straight. "He's one of the best pitchers you will face in a given year. It was tough putting a lot together against him."
Rookie outfielder Chris Burke went 3-for-3, Brad Ausmus went 2-for-2 with an RBI and two walks and Brad Lidge got the final three outs for his 18th save in 21 chances to send the surging Astros to their fourth straight win and eighth in a row at home.
Oswalt (9-7) won his third straight start and seventh consecutive at home, allowing two runs and six hits. Oswalt hasn't given up more than two earned runs in eight of his last nine outings, yielding just eight runs in 52 1/3 innings.
"I went right at them and I was able to move the ball around a lot," Oswalt said. "I felt really good out there."
Ausmus and Willy Taveras had run-scoring singles in the second to give Houston a 2-0 lead. Lane, who entered the game in a 2-for-23 skid, hit a 372-foot homer just inside the left-field pole in the third to make it 4-0.
"I've had a rough couple of days," Lane said. "It's just nice to drive in a couple of runs and get Roy the lead. You usually feel pretty good when Roy's on the mound and you have a 4-0 lead."
Houston got another run in the bottom of the eighth when Adam Everett scored on a double steal.
"You don't see that a lot," Astros manager Phil Garner said. "It's the element of surprise. They executed it perfectly."
The Rangers, coming off a three-game sweep to the AL West-leading Los Angeles Angels, have lost nine of their last 10 games away from home.
Even more telling about their recent struggles: The Rangers, the third-highest scoring team in the majors, have scored only 11 runs in losing the first five games of the road trip. Six of those runs came in Tuesday's loss to the Angels.
"We need a shot in the arm. We're just not getting it done offensively," Rangers shortstop Michael Young said. "Everyone fell into a rut at the same time. That seems to be what happens when a team goes into a slump."
Ricardo Rodriguez (2-1) lost for the first time in three starts since taking over in Texas' rotation for opening day starter Ryan Drese, who was designated for assignment June 8 and claimed by Washington.
He allowed four runs and eight hits in five innings.
"When you face a guy like (Oswalt), you've got to be tough," Rodriguez said. "We're going through a long slump. We'll worry about it a little, but I think we're going to come back and start scoring some runs again."
- Young returned to the lineup after missing two games to be with his wife for the birth of their first child, Mateo. He went 2-for-4.
- Rangers OF Kevin Mench grounded into a double play in the sixth inning, the first time he's done that in 222 at-bats. It was the longest streak in the majors.
- The Astros honored their 1980 NL West championship club in a pregame ceremony. Eighteen players from the team were in attendance, including Nolan Ryan, Joe Morgan and Cesar Cedeno.