GLENDALE, Ariz. — So much for Alex Smith and his lost confidence.
"It was in my closet," he said. "I found it."
Smith was almost perfect in San Francisco's 24-3 victory over the Arizona Cardinals on Monday night. But for a dropped pass, he would have been.
The 49ers quarterback completed 18 of 19 passes for 232 yards and three touchdowns after a week that saw some speculation that Smith's belief in himself was shaken following a pair of poor outings.
Coach Jim Harbaugh said questions about Smith's confidence came from "a couple of reporters," nothing more.
"I don't think there ever was a question there," Harbaugh said. "I think it was just a lot of gobble, gobble, turkey. Just gobble, gobble, gobble turkey. That paints a pretty good picture. He's a very confident guy."
Smith threw two touchdown passes to Michael Crabtree and one to Randy Moss.
"Eighteen of 19, I have never seen that," Harbaugh said. "How important for your quarterback to play very well? It is very important and I don't know how you play much better. It was a fantastic game by him.
It was a performance that caught the Cardinals by surprise.
"Everyone's surprised. My 5-year-old son's surprised," defensive tackle Darnell Dockett said, "but at the end of the day it wasn't like he had to make the long perfect throws. He had some guys open and we missed some tackles and they made plays."
Smith said he had no idea his stats were that good.
"Which is a good thing," he said. "I don't want to think about my stats or incompletions or anything like that. I was kind of in a good rhythm, the whole offense was. "'
The dominant victory opened a two-game lead for San Francisco (6-2) in the NFC West. Arizona (4-4) lost its fourth straight after a 4-0 start.
The Cardinals managed only a field goal against the No. 1 defense in the NFL.
"They're a good defense, don't get me wrong," Arizona quarterback John Skelton said. "They are a very talented defense. But to only put up three points, that's embarrassing, as an offense and as a team. It's in front of a national audience and we put up only three points and lost by 21. It's frustrating and it's humiliating."
Smith was 14 of 15 for 146 yards and two touchdowns, both to Crabtree, as the 49ers built a 17-0 halftime lead.
Moss caught a 47-yard TD pass, juking tacklers down the sideline on a play that seemed to turn back the clock to the receiver's prime. With the catch, he tied Terrell Owens for fourth on the NFL career touchdown list with 156.
Smith, who tied a career high with the three touchdown passes, spread his completions among 10 receivers. Crabtree led the way with five catches for 72 yards.
Arizona's defense, supposedly the team's strength, missed tackle after tackle in an embarrassing nationally televised performance at home. The 24 points were the most allowed by the Cardinals this season.
"This was a big test for us, and everyone saw how it went," Arizona coach Ken Whisenhunt said. "It was disappointing to say the least."
Led by Smith's pinpoint passing, the 49ers methodically dominated from the start. He had the best completion percentage of his career, and he would have been perfect had Delanie Walker not dropped the ball when he was wide open on a crossing route in the first half.
The Cardinals, down 17-0, were booed off the field by the home crowd at the half.
Things didn't get any better for the home team in the third quarter. On third-and-9, Smith threw 30 yards to Crabtree, who evaded a host of tacklers. Then on third-and-8, Smith tossed a short pass to Moss, who sidestepped a series of would-be defenders all the way to the end zone, putting San Francisco ahead 24-0 with 7:27 left in the third quarter.
The Cardinals averted a shutout with Jay Feely's 28-yard field goal
Skelton, making his second start since Kevin Kolb went down with rib injuries, completed 32 of 52 passes for 290 yards, often overthrowing receivers. The Cardinals rushed for just 7 yards in nine attempts against the 49ers, who entered the game as the No. 1-ranked defense in the NFL, No. 2 against the run.
Arizona's final possession ended when Larry Fitzgerald was stopped at the 1.
Follow Bob Baum at www.twitter.com/Thebaumerphx