SAN FRANCISCO -- No loose balls skittering around the end zone. No overtime thrills. Not even any trick-play shenanigans, unless you count the Arizona Cardinals' pooch kickoff to a fumbling San Francisco linebacker.
With one methodical, clock-killing march after another in a dominant second half, Kurt Warner and the Cardinals took all the fun out of an NFC West rivalry known for some of football's wackiest endings.
Warner passed for 197 yards and led three monotonously effective drives to cap the Cardinals' 23-13 victory over the 49ers on Sunday.
Although the two-time MVP left Candlestick Park with a big beige bandage on the bridge of his nose after somebody's finger got underneath his facemask, that scratch was just about the only aspect of the Cardinals' opener that Warner and his offense couldn't control.
"To be able to chew up the clock and get first downs and chunk away and get points, it's critical in games like this," said Warner, who went 19-of-30 without an interception. "You may not have your best stuff, but to be able to control the clock down the stretch was huge. It's the reason we were able to come out of here with a victory."
Anquan Boldin had all of his eight catches for 82 yards in the second half of the Cardinals' third straight opener against the 49ers, who beat them twice last year to ruin their playoff hopes -- both times under bizarre circumstances.
In last season's opener, receiver Arnaz Battle rushed for the last-minute winning touchdown moments after the Cards failed to hold on to an end-zone fumble. Linebacker Tully Banta-Cain then fell on Warner's fumble in the end zone for the OT winner in the all-offense rematch in Glendale.
Arizona allowed none of those late-game hijinks this time, grinding out 12 first downs while holding onto the ball for nearly 23 minutes in the second half. Neil Rackers' third field goal, from 30 yards with 1:57 left, capped an 18-play drive that covered 62 yards in 10:08, draining the life out of Candlestick Park.
"We were in this situation numerous times [last year], and this time we came out on top," said Edgerrin James, who rushed for 100 yards. "It's a point of emphasis that if you've got a chance to end the game, let's end the game. Let's finish it off the right way. ... Us being on the field as long as we were on the field, I know it affects the opposing offense."
J.T. O'Sullivan passed for 195 yards but also fumbled twice in his first NFL start for the 49ers, whose long-woeful offense looked downright competent at times under new coordinator Mike Martz -- if it could only get its hands on the ball.
Frank Gore rushed for 96 yards and San Francisco's only touchdown on an early 41-yard scamper, but the Niners fumbled four times, including new linebacker Takeo Spikes' flub on a clever short kickoff early in the second half that eventually led to Arizona rookie Tim Hightower's first NFL score.
The game looked even worse than it was to embattled 49ers coach Mike Nolan, who kept insisting his team had made six turnovers after losing four fumbles and an interception.
"I feel, had we played more of our type of game, we had every right to win the game," Nolan said. "Obviously, Arizona came out better prepared from the turnover standpoint. Last year, we beat them twice [because] we won the turnover battle twice."
O'Sullivan, the eight-team journeyman who won the 49ers' starting job over Alex Smith, was 14-of-20. Bryant Johnson, who spent the last five seasons with Arizona before joining the Niners, had three early catches for 48 yards, while Isaac Bruce failed to catch a pass for just the seventh time in his NFL career in his 49ers debut.
O'Sullivan, who had the ball swatted away from him twice by alert Arizona defenders, didn't take heart in the offense's solid work, including a 13-play scoring drive in the second half.
"You can't cherry-pick your performance," he said. "If you want to win in this league, you can't turn the ball over that amount of times."
Gore got the game's opening touchdown on an open-field run in the first quarter, but the Cardinals answered with a 58-yard drive culminating in Larry Fitzgerald's 1-yard TD catch immediately after Steve Breaston's 40-yard reception.
"We're a better team on offense, defense and special teams," Gore said. "We just can't make the mistakes we did. It'll get better, a whole lot better."
Smith could learn Monday whether his new shoulder injury will require season-ending surgery. Smith, inactive after feeling the injury Friday, likely will be finished with the 49ers if he needs shoulder surgery for the second straight year. ... James had his 56th career 100-yard game. ... Rackers became the second player in Cardinals history to score 500 points. He's still way behind Jim Bakken, who scored 1,380.