GLENDALE, Ariz. -- Tyrann Mathieu was lying in wait. So was Justin Bethel and the rest of the Arizona secondary.
When they pounced, the Arizona Cardinals were off to another impressive victory.
And Colin Kaepernick was left to consider what happened in one of the worst games of his career.
More from FoxSports
Carson Palmer threw for 311 yards and Arizona returned two of Kaepernick's first four passes for touchdowns and the Cardinals romped past the San Francisco 49ers 47-7 on Sunday.
Larry Fitzgerald caught nine passes for 134 yards and two touchdowns and Chris Johnson rushed for 110 yards and two scores for the Cardinals (3-0), who won at Chicago 48-23 last week.
Arizona coach Bruce Arians acknowledged "that was a pretty good football game for us."
It's the first time the franchise has had two 40-point victories in a row since 1969 and it's the franchise's largest margin of victory since a 44-0 win over Houston in 1970.
And the best might well be yet to come.
"We're not clicking on all cylinders yet," Fitzgerald said, "and that's scary to think about, that we can get much better."
Kaepernick threw a career-worst four interceptions, two by Mathieu, and finished 9 for 19 for 67 yards, a quarterback rating of 16.7.
"Their passing game has simplified so much," Mathieu said. "It was easy for us to anticipate routes and just get some good breaks on the ball."
Bethel returned the first interception 21 yards for a touchdown and Mathieu ran untouched 33 yards for another score.
"That's the most perfect possible way that we can start a game off on defense," said cornerback Jerraud Powers, who had the last interception.
Kaepernick took the blame.
"Very hard to see myself go out and play like that and hurt this team the way I did," he said. "I nullified all the efforts of every player on the field today."
Kaepernick had a 12-yard TD run for San Francisco (1-2).
San Francisco linebacker Ahmad Brooks said he couldn't remember ever losing by 40 points.
"We really got embarrassed today," he said.
The Cardinals scored 24 points off the four interceptions and opened an early two-game lead in the NFC West.
Palmer won his ninth in a row, the NFL's longest active streak, and is 16-2 in his past 18 starts.
Palmer completed 20 of 32 passes and threw his first interception of the season.
The defense scored three times, the last when Kevin Minter tackled Carlos Hyde for a safety.
Arizona had 446 yards to 156 for the 49ers, coming off a 43-18 loss at Pittsburgh.
Kaepernick's first pass, on third-and-13 from the San Francisco 12-yard line, was intended for Vernon Davis, but Bethel stepped up to grab it and run untouched to the end zone. The pick for Bethel, a two-time Pro Bowl special teams player, came on his first play from scrimmage this season.
After the subsequent kickoff, Kaepernick tried to get a sideline pass to Anquan Boldin. Mathieu stepped in front of the intended receiver, caught the ball then ran 33 yards for the score, high-stepping the final 10.
Fitzgerald's performance came a week after he caught eight passes for 112 yards and three touchdowns in Chicago.
Palmer threw his first interception of the season late in the second quarter, and San Francisco quickly gave it back.
Kaepernick threw deep, intended for Davis, but Mathieu got to it first.
The "Honey Badger" returned it 17 yards, leading to Chandler Catanzaro's 22-yard field goal that made it 31-7 as the half ended. It is the only time in 12 red zone appearances this season that Arizona has not scored a touchdown. After the interception, Mathieu ran to the stands and handed the ball to a small boy, who gathered it in both arms.
"I saw the little guy up there," Mathieu said, "and he looked like he really wanted the ball."
NOTES: Davis injured a knee and coach Jim Tomsula said he didn't know how serious it was. ... Defended by Patrick Peterson, the 49ers Torrey Smith did not have a catch. ... Bobby Massie, suspended the previous two games for violating the NFL's substance abuse policy, started at right tackle for Arizona.