SANTA CLARA, Calif. — After just two drives, Aaron Rodgers is ready to begin the season for the Green Bay Packers. San Francisco coach Chip Kelly still needs a bit more time to figure out who his starting quarterback will be once the games count next month.

Rodgers made the most of his only appearance of the preseason, throwing a touchdown pass to Randall Cobb in the Green Bay Packers' 21-10 victory over the San Francisco 49ers on Friday night.

"I feel good about the work we put in tonight," he said. "We had two good, sustained drives. We ran a bunch of plays in those two drives and it was up-tempo and that's important."

Colin Kaepernick did not fare as well as he looked extremely rusty in his first game action since last November. He completed 2 of 6 passes and generated one first down on three drives.

"I wish we had done a little bit more but it was good to get out there and get my feet wet," Kaepernick said.

Even though Kaepernick struggled after sitting out the past two weeks with a tired shoulder and Blaine Gabbert led the Niners to a touchdown on one of his two drives, Kelly said he's not ready to pick a starter for the season opener against the Rams on Sept. 12.

"You're never going to make any decisions walking off the field," Kelly said. "We'll sit down as a staff and see where we are."

After a three-and-out on the opening drive, Gabbert led the Niners to a score on his final series. He had a nice run and two short completions before Carlos Hyde busted a 27-yard run. Quinton Patton then took a lateral from Gabbert and scampered into the end zone on a 3-yard run.

Kaepernick entered to applause on the next series, but did little to show he deserves the starting job. He was quick to leave the pocket when his first option was covered, and three of his passes were broken up by defenders. He finished 2 for 6 for 14 yards and added 18 yards on four runs.

After being held out of the first two preseason games despite being healthy, Rodgers played two drives against the 49ers, going 6 for 9 for 60 yards.

After the first drive stalled because of penalties, Rodgers led a 14-play, 87-yard drive the next possession. He drew a 12-men-on-the-field penalty when he operated out of the hurry-up offence and capped the drive with a quick pass to Cobb, who juked Chris Davis and got into the end zone for a 6-yard score.

ROOKIE WATCH

Packers: Joe Callahan, an undrafted rookie out of Division III Wesley College, went 16 for 24 for 167 yards with an 18-yard TD pass to Jared Abbrederis.

49ers: First-round draft pick Joshua Garnett did not start but came in after two series to get time with the first-team at left guard.

INJURY UPDATE

Packers: LB Jayrone Elliott and S Chris Banjo left with hamstring injuries and RB John Crockett injured his shoulder. ... First-round DL Kenny Clark did not play because of a back injury.

49ers: Hyde (concussion), DL Quinton Dial (knee), WR Bruce Ellington (hamstring) left with injuries.

POSITION BATTLES

Packers: Free agent acquisition Jared Cook, competing with Richard Rodgers for the starting tight end role, caught four passes for 54 yards. Rodgers had one catch for 8 yards.

49ers: Anthony Davis, a former starter at right tackle, played right guard in a game for the first time since college. Davis sat out last year in a temporary retirement before returning to the team this summer. With Trent Brown entrenched at right tackle, Davis is trying to get back into the lineup at guard.

QUOTABLE

Packers: "It's three wins, but it's more about the quality of play. We improved as a football team today," coach Mike McCarthy said after his team improved to 3-0 this preseason.

49ers: "We weren't very consistent except for that one drive," Kelly said. "That was the story of the game. We flashed but we weren't consistent enough in any area whether it was running the football, converting, protecting, catching it."

___

AP NFL website: www.pro32.ap.org and http://twitter.com/AP_NFL