The Cardinals took the lead when Colin Kaepernick searched for his receiver down the right sideline and Justin Bethel made the leaping grab for the interception and returned the ball 21 yards for the touchdown.
Arizona extended their advantage with a carbon-copy play, but this time Tyrann Mathieu jumped in front of the pass, intended for Anquan Boldin, to make the interception and return the ball for a 33-yard score.
The 35-year-old continued his fine form with another throw to John Brown to move the Cardinals to the goalline, and Johnson notched his second score of the match when he raided through for a one-yard touchdown.
Jarryd Hayne sparked his team into life with a punt return to move the 49ers into the redzone, and Kaepernick completed the score when he ran the ball around the left side of the line for a 12-yard score.
However, Kaepernick threw his third interception of the game as Mathieu picked off the quarterback again. The pick allowed Palmer to drive his side within field-goal range and Chandler Catanzaro fired his kick through the posts to hand his side a 24-point advantage at the break.