B.J. Upton recorded the first three- homer game of his career and James Shields posted his second shutout of the year, as the Tampa Bay Rays earned a series win over the Texas Rangers with a 6-0 victory.

Upton hammered Roy Oswalt's first pitch of the rubber match into the right- field bleachers, then added two more solo shots off reliever Martin Perez.

"You kind of dream about doing things like that and they don't happen very often," Upton said.

Shields (14-8), not to be overshadowed, gave up just two hits against the hard-hitting Rangers while striking out eight and not issuing a walk.

Jose Molina added a two-run homer for the Rays, who have won six of eight and are 1 1/2 games behind an AL wild card spot.

Texas holds a four-game lead over the Athletics in the AL West.

Oswalt (4-3) lasted just two innings in a spot start that gave Matt Harrison an extra couple of days rest. The midseason signing was touched for four runs on six hits as his ERA rose to 6.29.

Matt Joyce doubled in Ben Zobrist after Upton's seventh career leadoff homer, and Molina followed Carlos Pena's leadoff single in the second with his sixth home run of the season for a quick 4-0 edge.

Upton, the Rays' leader in homers, RBI and stolen bases, crushed one midway up the left-field seats to open the fourth, then cleared the wall again with the bases empty in the sixth.

He came up in the eighth with a chance at four home runs, but grounded out weakly to third.

Shields retired 19 in a row at one point and fittingly ended the brisk 2-hour, 15-minute affair by catching Elvis Andrus looking at strike three.

"He was really good today. He had a tremendous change-up and he certainly didn't waste a whole lot of pitches," Rangers manager Ron Washington said about Shields. "We just couldn't find the fat of the bat."

Game Notes

Shields has eight career shutouts ... Upton has 21 home runs and 12 since August 3 ... Pena tied his own club record with his 166th strikeout ... The Rangers had won six straight series.