SAN FRANCISCO (AP) -- Mike Patterson simply followed one of football's oldest rules: Keep playing until you hear the whistle.
About 98 yards after he started running with a loose ball nobody seemed to want, the 292-pound defensive lineman was begging for that whistle.
Wheezing, wincing and finally walking, Patterson still crossed the opposite goal line with the stunning fumble return that helped the Philadelphia Eagles head home with a 38-24 victory over the San Francisco 49ers on Sunday.
Brian Westbrook rushed for 117 yards and two touchdowns, also catching a scoring pass from Donovan McNabb, who passed for 296 yards -- but Patterson's kooky fumble return was the most memorable moment of an otherwise methodical win.
Philadelphia's genial run-stopping defensive tackle seized an unlikely moment when Frank Gore fumbled while trying to stretch over a goal-line pile of players in the third quarter. Patterson thought he was the only person who saw the ball.
"I didn't hear a whistle, so I just picked it up and ran with it," said Patterson, a California native playing in front of at least 60 friends and family. "I felt it on the 40, started breathing real hard. I just tried to remember my form."
Patterson got to midfield before most of the Niners realized the ball was still live. He eventually walked over the goal line for the longest fumble return in Eagles history, surpassing a 32-year-old record and putting Philadelphia ahead 31-3.
"He looked really quick for about a good 40, 50 yards, but I think reality hit -- how big he was," McNabb said.
The Eagles (2-1) had plenty of highlights to go around. Reggie Brown caught five passes for 106 yards as Philadelphia shook off last week's embarrassing collapse against the Giants, emphatically protecting a huge lead this time with 416 yards of sharp offense.
The Niners lost more than the football and their momentum on the big fumble: Gore, who fumbled at the goal line last week as well, and rookie tight end Vernon Davis were injured on the play. Davis, the sixth overall pick, will be out for a month with a broken leg.
"It hurts. You're down at the 1, and it's a 14-point swing," said Alex Smith, who passed for a career-high 293 yards. "Fourteen points. Take a look at the scoreboard. Take away 14 points, and it's pretty close. Those things hurt, but they happen."
Smith went 27-of-46 and rookie Michael Robinson scored two touchdowns for the 49ers (1-2), but their good vibe from last week's victory over St. Louis evaporated in a cloud of offensive mistakes and missed tackles.
In the Eagles' 42-3 pounding of the 49ers last September, McNabb passed for 342 yards and five touchdowns. He was nearly as proficient on the opposite coast this time, passing for 232 yards and two scores in the first half as Philadelphia took a 21-point lead.
"I thought last year they just flat kicked our tail," coach Mike Nolan said. "I think this year we did a good job of kicking our own tail, and they did a good job, too. So it was two against one."
McNabb completed 12 of his first 16 throws in Philadelphia's clever game plan, hitting Westbrook and tight end L.J. Smith for short scores. Westbrook, who missed practice last week with swelling in his knee, got his second TD on a 71-yard run in the second quarter, rudely stiff-arming Niners safety Mike Adams along the way.
"I was well rested, fresh, felt good," Westbrook said. "They're up-and-coming, they're very young, and we're an experienced team. We know how to come back from a hard loss."
San Francisco was booed at halftime, but finally got in the end zone after Patterson's record run. Bryan Gilmore's 75-yard catch set up Robinson's 1-yard dive -- the former Penn State quarterback's first NFL score.
Donte' Stallworth was a late scratch from the Eagles' lineup with a hamstring injury, but Brown came through with his first 100-yard receiving game. The Eagles adeptly used screen passes and misdirection to frustrate the 49ers' pass-rushers, who had nine sacks in their first two games.
Brown, the 35th pick in the 2005 draft, could have been chosen by the 49ers to boost the NFL's worst corps of receivers. Instead, they used the 33rd pick on disappointing offensive lineman David Baas, whose uniform stayed sparkling-clean in his spot on the Niners' sideline.
McNabb's quarterback rating was 105.1 -- impressive, but not quite his 155.4 in last season's win over San Francisco. ... The teams had three sacks apiece. ... Niners TE Eric Johnson caught a TD pass with 6 seconds left.