ST. LOUIS -- Aaron Rodgers and the Green Bay Packers made themselves right at home in St. Louis.
Backed by a huge contingent of cheeseheads who were every bit as loud as the real home fans, Rodgers passed for three touchdowns and Green Bay's depleted defense clamped down on the Rams in a 30-20 victory on Sunday.
Randall Cobb caught two touchdown passes and Jordy Nelson had eight receptions for a season-best 122 yards for the Packers (4-3). Rookie Casey Hayward made his first start in place of injured Sam Shields and intercepted his fourth pass in three games.
Green Bay ended the Texans' unbeaten start at Houston last week, but had alternated losses and wins the first six weeks. Rodgers was 30 for 37 for 342 yards in his fourth 300-yard game this season.
Steven Jackson ran for his first touchdown of the year, and just the Rams' 10th overall, to trim the deficit to a touchdown midway through the fourth quarter. But Rodgers made a terrific throw to Cobb for a 39-yard pass that put the Packers up by two scores with 3:06 to go.
The Rams (3-4) will surrender home-field advantage next week when they travel to London to play the Patriots.
Chris Givens had a 56-yard reception for St. Louis on a screen pass in the fourth quarter, his fourth straight game with a 50-yard plus reception. Fellow rookie Greg Zuerlein kicked a 50-yard field goal.
Rodgers' numbers were not nearly as flashy as last week, when he tied the franchise record with six touchdowns and no interceptions. But he was very efficient while leading an offense heavily tilted to the pass game and went 9 for 14 on third down.
The Rams were undefeated in the Edward Jones Dome. They opened the home schedule with victories over the Redskins, Seahawks and Cardinals, limiting opponents to 14.7 points per game.
Green Bay played without four defensive starters. Shields (shin, ankle), linebacker Nick Perry (knee) and tackle B.J. Raji (ankle) were inactive. Linebacker D.J. Smith was recently placed on injured reserve.
St. Louis quarterback Sam Bradford was 21 for 34 for 255 yards and an interception, and was sacked three times behind a patchwork line with just two starters left from the opener. Bradford threw a 3-yard touchdown pass to Austin Pettis with 3 seconds to go.
After dominating in time of possession in the first half, holding the ball for more than 18 minutes, the Rams ran just seven plays in the third quarter and were held to minus-7 yards while the Packers had 129 yards and 11:39 in time of possession.
Nelson wrapped up his second straight 100-yard game early in the third quarter, often picking on rookie cornerback Janoris Jenkins. Cobb threw a nice fake on Jenkins in the end zone on a 5-yard catch that put the Packers up 17-6 midway through the third.
Rodgers completed his first nine passes for 115 yards, including a 52-yarder to Nelson that set up a 3-yarder for Nelson's fourth score in two games. The first incompletion came with just over six minutes left in the half when Rodgers slightly overthrew James Jones on a sideline pattern, with Jones able to get just his fingertips on the ball.
The Packers' Jamari Lattimore recovered an onside kick at the Rams 49 after St. Louis' Trumaine Johnson was flipped on his head when he was just about to haul in the ball, setting up a 47-yard field goal by Mason Crosby for a 10-3 lead late in the first.
Zuerlein ended a string of three misses, the last a 66-yarder that had the distance but was wide left at the end of last week's 17-14 loss at Miami, with a 50-yarder that gave the Rams the early lead. Zuerlein is 5 for 7 from 50-plus.
Crosby was wide right and short on a line-drive 58-yard attempt, which would have matched his career best, on the final play of the half.