ST. LOUIS — All of those months of injury rehab paid off for Sam Bradford, who showed no signs of a season-ending knee injury last November.
Aaron Rodgers looked pretty polished, too.
Bradford and Rodgers each threw a touchdown pass in their preseason debuts in the Green Bay Packers' 21-7 victory over the St. Louis Rams on Saturday.
"It felt great there," Bradford said. "No surprises. It felt really good."
Michael Sam played in the second half and got his first sack of the preseason, dropping Matt Flynn for a 10-yard loss in the fourth quarter to force a 49-yard field goal by Mason Crosby. Sam had a tackle earlier in that series and totaled two quarterback hits.
"I felt more comfortable, more relaxed," Sam said. "I know the speed of the game, I know how it is and it just felt right."
Everything went according to plan for the Rodgers and the Packers.
"We practiced up-tempo offense and to be able to come out and execute it at this stage of the game is great," running back Eddie Lacy said. "It will be tough for opponents to keep up and be able to beat us."
Rodgers was 11 for 13 for 128 yards and a 3-yard score to Randall Cobb. His only complaint was about officiating — the teams were whistled for a combined 22 penalties for 171 yards and two touchdowns catches were nullified.
"It's way over the top, it's just too much," Rodgers said. "The game's way too choppy if they're going to call it like that."
Bradford, who said weeks ago that the left knee was no longer a concern, was 9 for 12 for 101 yards and an 11-yard touchdown to Lance Kendricks.
"It was nothing new, I've been here before," Bradford said. "I think for everyone else it's probably a bigger deal for me to get back out on the field."
Lacy had five carries for 25 yards on the Packers' 12-play, 86-yard drive to start the game.
Sam, the seventh-round pick is the first openly gay player drafted in the NFL, is likely competing with undrafted Ethan Westbrooks for a backup spot.
Westbrooks was the second-team left defensive end behind Chris Long and had a sack with four total tackles, while Sam got work at both defensive end spots.
The Edward Jones Dome appeared about half-full, even with the benefit of hundreds of Packers fans who made the trip and let loose with a big cheer after Cobb's TD catch. The Rams announced ticket sales of 55,072 and capacity is about 66,000.
Rodgers had plenty of time to operate and he looked sharp, going 6 for 6 for 47 yards and scrambling 14 yards on the opening drive. He ended the quarter with a 35-yard pass to Andrew Quarless to the St. Louis 12 that led to a short field goal and a 10-0 lead.
"The offense got off to a great start," coach Mike McCarthy said. "I really liked the production that we were able to get done in the first two series."
Scott Tolzien was 10 for 15 for 107 yards behind Rodgers and Matt Flynn, who started the opener, was effective as the third quarterback. Flynn threw a 34-yard touchdown pass to rookie Jeff Janis, a seventh-round pick, and added a 2-point conversion pass to Davante Adams that made it 18-7 late in the third.
Most of Bradford's passes were underneath, with most of Brian Quick's 41-yard gain coming after the catch. He just missed connecting with Kenny Britt on a 35-yarder in the first quarter and converted on fourth-and-3 from the Packers 43 with a 5-yard pass to Jared Cook.
Rams backup quarterback Shaun Hill was 1 for 4 for 14 yards. He threw two touchdown passes as the starter last week when Bradford was held out.
The Rams held out left tackle Jake Long (knee), middle linebacker James Laurinaitis (ankle) and cornerback Janoris Jenkins (hamstring). All three could play next week at Cleveland.
Jordy Nelson started for the Packers after returning from a hamstring injury this week, but had no catches in limited action.
Notes: Rams backup RB Isaiah Pead will likely be out for the season with a torn ACL in his left knee, which buckled at the end of a 33-yard kickoff return in the first quarter. He was helped off the field and then carted away for tests. ... Packers TE Brandon Bostick was sidelined with a lower leg injury in the first quarter. ... Rams OL Greg Robinson, the second overall pick, started at left tackle and also got work at guard as in the preseason opener.