CHICAGO -- J.T. O'Sullivan made a perfect case to start. And Alex Smith's counter-argument didn't measure up.
Even so, 49ers coach Mike Nolan wasn't ready to announce a starting quarterback.
O'Sullivan threw for 126 yards and a touchdown in his limited time while Smith struggled, and the San Francisco 49ers beat the Chicago Bears 37-30 on Thursday night.
Although the third preseason game usually is a dress rehearsal for the opener, Nolan wouldn't declare a winner in the quarterback race.
"We will talk about it more (Friday)," Nolan said. "I would like to watch the film, talk to our players, before any announcement or anything like that is made. But I did like what I saw in all three of them."
After two mediocre outings against Oakland and Green Bay, O'Sullivan couldn't have performed any better against the Bears.
He was 7-for-8 with a perfect 158.3 passer rating in his third preseason start. He led the 49ers (2-1 preseason) to field goals on the first two possessions and a two-play, 77-yard touchdown drive on the third one. He hit Vernon Davis with a 40-yard pass and then scrambled to his right before throwing a 37-yard touchdown pass to Jason Hill to give the Niners a 13-10 lead less than a minute into the second quarter.
"That was a great play call," he said. "Jason did a great job of running so fast across the field and just made a great play on the ball."
And O'Sullivan did a good job, too. The question is whether he did enough to beat Smith, who came on early in the second quarter and was 6 for 17 with 83 yards and a touchdown, even though Nolan wasn't about to make an announcement. He even left the door open for Shaun Hill, who played well late.
He entered the game after Chicago's Garrett Wolfe fumbled the kickoff following Hill's touchdown pass, giving the Niners possession on the Bears' 16. Moran Norris ran it in from the 1 to make it 20-10.
Smith also led the Niners on a 62-yard drive that ended with a 12-yard touchdown pass to Dominique Zeigler, giving the 49ers a 27-20 lead with 9:28 left in the third quarter. Otherwise, it was a rough night for him.
Hill replaced him late in the third quarter and was 6-for-7 with 60 yards against the Bears' reserves. But after Thursday's game, the starting job appears to be O'Sullivan's even though there was no announcement.
"Everybody wants to know who the starting quarterback will be," Davis said. "I don't know. I have no idea. Everybody looks good to me."
The Bears' quarterback drama ended Monday when coach Lovie Smith selected Kyle Orton the starter over Rex Grossman. And Orton backed it up with a strong showing.
He was 10 for 17 with 147 yards, two touchdowns and no interceptions for Chicago (0-3). He had four passes of 18 yards or more, including a 55-yarder to Mark Bradley -- a big improvement over the first two preseason games, when his longest completion was 17 yards.
"I thought I played well and I thought we played well as a unit," said Orton, who started 15 games as a rookie in 2005 and three last season.
Smith said Orton didn't need a good showing to keep his job.
"He's our quarterback, and I think he can play good football for us, but it was good to see him validate that tonight," Smith said.
QUICK HITTERS -- Steven Jackson signed a six-year, $44 million contract, ended a 27-day holdout and was on the field for practice with the Rams. ... The Steelers signed linebacker James Farrior to a five-year, $18.2 million contract extension that includes a $5 million signing bonus. ... Ravens running back Willis McGahee, currently limited to running in a swimming pool as he recuperates from arthroscopic surgery on his left knee, expects to be running with the football when the season starts. ... The Patriots signed 10-year veteran Mike Flynn, who played his entire NFL career with the Ravens before he was released in February. He can play both center and guard.