CHARLOTTE, N.C. - It had been so long since the Carolina Panthers last won at home, Vinny Testaverde was only 43.
On Sunday, the Panthers turned to their ancient quarterback to end a home losing streak that lasted more than a year, opening up the playbook and taking advantage of a rejuvenated defense in a 31-14 win over the San Francisco 49ers.
The key, apparently, was to quit worrying about the streaks: five straight losses overall, seven in a row at home dating to last season.
"Last night coach (John) Fox mentioned to the team, 'Hey just go out and have fun,'" Testaverde said. "We've pressed too hard and we've made too many mistakes. Not that today was perfect, but it seemed like the guys were having fun and making plays."
Including Testaverde, who even lined up at receiver once during a day of razzle-dazzle for the Panthers (5-7) under the normally conservative Fox. Testaverde, who at 44 years, 19 days became the second-oldest starting quarterback in NFL history, threw two touchdown passes.
Testaverde also became the oldest starter to win, besting his own record set seven weeks ago in Arizona, Carolina's last victory.
"Any time you get on that kind of streak, it's tough to break," Fox said. "This wasn't just a monkey, it was King Kong."
The Panthers' defense stepped up, too, with six sacks and Richard Marshall's 73-yard interception return for a touchdown, spoiling the 49ers' confidence a week after they snapped an eight-game losing streak.
Trent Dilfer threw two touchdown passes, but was intercepted four times and hit all day by Carolina's much-maligned defense. The 49ers (3-9) committed six turnovers.
"No matter how you lose, it rips your guts out," Dilfer said. "I'm very disappointed with some of the mistakes I made."
The sloppiness was evidence of why both teams will be watching the playoffs on TV, but the Panthers will take it after going 377 days between home wins. The strong showing came a week after Carolina showed no spark with David Carr at quarterback in a 31-6 loss to New Orleans.
Testaverde returned Sunday from his sore back and Carr was demoted to third string. While Testaverde threw for only 153 yards and had two interceptions, he directed an offense that took risks and snapped a streak of 12 straight quarters at home without an offensive touchdown.
The Panthers ran a reverse, a lateral and even a direct snap to Steve Smith - with Testaverde lining up wide - in building a 17-0 halftime lead.
"We mixed it up," Testaverde said.
Showing poise in the pocket missing when Carr ran the offense, Testaverde tossed a 5-yard touchdown pass to rookie Dante Rosario - who was 2 years old when Testaverde entered the league in 1987 - and a 1-yard pass to Jeff King early in the fourth quarter.
That allowed the Panthers to overcome two miscues that briefly let the 49ers back in it.
Michael Lewis intercepted Testaverde on the first series of the second half, leading to Dilfer's 20-yard touchdown pass to Arnaz Battle.
Nate Clements' 41-yard punt return set up Dilfer's 21-yard TD pass to Delanie Walker, cutting Carolina's lead to 17-14.
As has been the case for the 49ers all season, the good fortune didn't last.
Lewis muffed a punt and Rosario fell on it at the 49ers' 11. Four plays later, DeShaun Foster's 1-yard TD run gave Carolina a 10-point cushion.
"I can't blame it on the wind or anything," Lewis said. "It was just my fault."
The Panthers' defense, which had a league-low 10 sacks in the first 11 games, made it stand up against the 49ers' shaky offensive line. Mike Rucker had 1½ sacks and forced a fumble.
Frank Gore was held to 58 yards rushing on 12 carries, a week after he had his first 100-yard game in San Francisco's overtime win over Arizona.
The offensive woes returned for the 49ers Sunday, even with new offensive assistant Ted Tollner spending his second game in the booth assisting rookie offensive coordinator Jim Hostler.
With Dilfer's struggles and the uncertainty surrounding Alex Smith's shoulder injury, the 49ers are facing questions at QB.
"As soon as the medical staff tells me there's a possibility of a change, as far as someone's health, I will take a look into it," coach Mike Nolan said.
With the visiting team struggling at QB for a change, Carolina fans were able to leave happy for the first time since the Panthers' 15-0 over St. Louis on Nov. 19, 2006.
It was Testaverde who provided the spark, as he passed Warren Moon, who was 44 years, 8 days old when he started in 2000. Steve DeBerg, at 44 years, 279 days, holds the record for oldest QB from his 1998 start.
Notes: Gore, a former college teammate of Sean Taylor at Miami, pointed to the sky after a moment of silence for Taylor before the game. All NFL games remembered the slain Washington Redskins safety.... Panthers S Chris Harris (shoulder) and 49ers S Donald Strickland (knee) left with injuries, but they were not believed to be serious.