Brown ran 41 yards for the touchdown. For a quarter, it was vintage McNair.
The Tennessee quarterback took advantage of the NFL's worst defense by throwing for 343 yards and three touchdowns in the third quarter, including two within 80 seconds, and the Titans snapped a five-game losing streak by beating the 49ers 33-22 on Sunday.
"That is reminiscent of the old Steve," Titans coach Jeff Fisher said. "It was good to see."
Brown, who hasn't rushed for 100 yards in a game this season, caught three passes for 105 yards and a touchdown. Rob Bironas also
kicked a career-high four field goals. Kyle Vanden Bosch had two sacks, and the Titans (3-8) forced four turnovers in winning for the first time since Oct. 16.
McNair finished 23-of-41 in his best game since Oct. 12, 2003, when he threw for 421 yards against Houston in the season he shared MVP honors with Peyton Manning.
"Steve played amazing out there," Brown said. "I don't know how he found me because I thought he was sacked on that big play. It was a perfect pass."
It was the fifth time this season that the 49ers (2-9) had allowed a team to throw for more than 300 yards. The Titans finished with a season-high 461 yards total offense in a performance that disappointed San Francisco coach Mike Nolan.
"We gave up some explosive passes in the second half that hurt us, and an example, I guess, of what an experienced quarterback can do to an inexperienced secondary," Nolan said.
San Francisco recovered the ensuing onside kick. But with no timeouts left, the 49ers were already out of time before Vanden Bosch sacked Dorsey and forced the final turnover.
"We've come up short again," Nolan said.
The 49ers led 14-9 at halftime after the Titans had tried their best to take advantage of the NFL's worst defense by going with the no-huddle and even using rookie cornerback Pacman Jones on offense for a couple plays.
"Sometimes coaches dream wild things up after midnight, and I think that was the case," Fisher said.
But San Francisco ended its first visit to Tennessee with a fourth straight loss after McNair took control. He picked the 49ers apart by completing five of his seven passes in the third quarter for 142 yards.
First, he found Brown on a short pass for a 41-yard TD and a 16-14 lead. On the next offensive play, McNair connected with rookie Roydell Williams down the right sideline on a 50-yard TD 79 seconds later.
Then McNair drove the Titans 68 yards before finding Erron Kinney on a 4-yard toss at 4:54 of the third for a 30-14 lead.
The game featured plenty of the mistakes that have doomed both teams this season.
Tennessee could have led 14-0 after the first quarter if not for a holding penalty that wiped out a 35-yard TD run by Brown. Then a 26-yard run on a trick play featuring Jones was erased by an illegal block in the back penalty.
Linebacker Keith Bulluck intercepted a pass and ran it to the San Francisco 7 late in the second only to see the Titans settle for Bironas' third field goal of the half and a 9-7 lead.
The 49ers had trouble as well. Jose Cortez, signed on Friday to replace the injured Joe Nedney, bounced a 34-yard field-goal attempt off the left upright, and a holding penalty nullified a 75-yard TD run by Kevan Barlow.
Still, when Titans receiver Brandon Jones fell to the ground untouched with an injured right knee, Shawntae Spencer grabbed McNair's pass and returned it 61 yards for a score with 27 seconds left in the second quarter to give San Francisco the halftime lead.
It was McNair's 10th 300-yard passing game of his career and his 14th with three touchdowns. ... Brown caught a 57-yard pass in the first quarter that was the longest play this season and the team's longest reception since Justin McCareins caught a 73-yarder at Houston on Dec. 21, 2003. ... The 49ers are now 0-5 on the road this season.
Patriots quarterback Tom Brady issued a statement Friday night on his Facebook page, expressing excitement over being able to play but also disappointment over the Deflategate ordeal.
The Seattle Seahawks have agreed to terms with free-agent running back Fred Jackson on a one-year deal, a source told ESPN NFL Insider Adam Schefter.
The Philadelphia Eagles traded quarterback Matt Barkley to the Arizona Cardinals on Friday, clearing the way for Tim Tebow to potentially be the Eagles' No. 3 quarterback.
NFL owners plan to talk about possibly changing commissioner Roger Goodell's role in the disciplining of players, the Washington Post is reporting.
The Colts have added depth at linebacker by trading a sixth-round pick for Sio Moore, who had fallen out of favor with the Raiders' coaching staff.
A young Chicago Bears fan who named his brain tumor after Aaron Rodgers will get to attend the season opener against the Packers on Sept. 13 at Soldier Field, courtesy of his favorite team.