SAN FRANCISCO (AP) -If last season's offensively inept 49ers had somehow managed to get to the Detroit 1, they would have kicked an easy field goal on fourth down without hesitation.
Mike Martz's 49ers coolly called a timeout, then scored the decisive touchdown with a beautiful end-around run by kick returner Allen Rossum , of all people.
The Lions thought Martz was part of their problem last year. So far in San Francisco, coach Mike Nolan's offensive mastermind has been the solution for the Niners' years of awfulness.
Frank Gore rushed for 130 yards and a touchdown, and Martz's new offense methodically chewed up his former team's defense in the 49ers' 31-13 victory over Detroit on Sunday.
Isaac Bruce and Delanie Walker caught TD passes from J.T. O'Sullivan, who went 16-for-23 for 189 yards as San Francisco improved to 2-1 for the second straight season - but with much more reason to think its tiny winning record might mean something.
''We've got so much stuff in our offense now,'' said Gore, sounding like a kid describing what's under the Christmas tree. ''It felt so great to move the ball like that. The pass game is a whole lot better, and the more we throw the ball, the better it is for me in the running game. It's going to be crazy all year. We're going to do a lot of good things.''
Martz joined San Francisco a few days after Detroit fired him as the scapegoat for the Lions' second-half collapse in 2007. He has brought immediate respectability to the 49ers, who had the NFL's worst offense in two of the past three seasons.
The 49ers essentially put it away with a 12-play, 77-yard drive stretching into the fourth quarter. Nolan sent out his field goal unit on fourth down, but called a timeout and decided to let Martz go for it.
Rossum took a handoff and outran Detroit's defense to the corner, diving to reach the end zone.
''We practice that play once a week, if that,'' said Rossum, another Niners newcomer. ''I guess that was the perfect time to use it.''
San Francisco gained 370 total yards against the Lions, just 4 fewer than San Francisco managed in any game last year.
Detroit is headed into its bye week with its fourth 0-3 start in eight years - no surprise for a team with seven consecutive losing seasons and the NFL's worst record over the last eight years.
Rudi Johnson rushed for 84 yards and turned a short catch into a late 34-yard TD for the Lions, who fell behind 21-3 after facing a 21-0 hole in both of their first two games. Jon Kitna passed for 146 yards on his 36th birthday for the Lions, but the veteran hobbled off the field after Parys Haralson sacked him with 1:50 to play.
Kitna sprained his right knee, and Detroit didn't immediately know how long he might be out.
''I just got beat up all day,'' said Kitna, who went 15-for-30. ''The play at the end was a culmination of four or five hits. ... We're built to run the football, not (throw it) and get easy completions. That's not very effective when you're down by that many points.''
Roy Williams had just two catches for 18 yards, and Calvin Johnson didn't make the first of his four receptions until the third quarter. Rudi Johnson looked good while getting most of the snaps in place of rookie Kevin Smith , but Detroit managed just 67 total yards in the first half and couldn't catch up.
''We're working, and the preparation's been good,'' coach Rod Marinelli said. ''For whatever reason, the coaches and players aren't executing. We didn't get it done. They're fundamental things that we as a staff and players didn't get done.''
Martz's 49ers looked good almost from their opening series. Gore's 33-yard run late in the first quarter set up an easy TD catch by Bruce - the 85th of his career, but the first with the 49ers after 14 seasons with the Rams.
Martz called a double end-around on San Francisco's third series, and Arnaz Battle took it 18 yards. Gore finished that drive with a 4-yard TD run early in the second quarter despite juggling the pitchout for a frantic moment.
After Jason Hanson hit the first of his two field goals for Detroit, O'Sullivan replied with three long passes for 72 yards, culminating in Walker's 24-yard catch down the middle.
After Rossum's run, the Lions finally scored on Johnson's 34-yard romp after a short catch with 6:57 left. But Hanson's terrible onside kick was returned by Battle to the Detroit 12, setting up a field goal.
Notes: San Francisco CB Tarell Brown had his first career interception. ... O'Sullivan was sacked 12 times in the 49ers' first two games, but just once by Detroit. ... Lions rookie RT Gosder Cherilus started in place of George Foster , who was benched in the second half of last week's game. ... Lions RG Stephen Peterman broke his hand.