Minnesota threatened to delay the celebrations with a late comeback, but the Cardinals held on for a seventh successive win to edge closer to their first NFC West title since 2009.
The Vikings hit back to take the lead through Adrian Peterson, who dodged four tackles on a nine-yard rush to the endzone for his 100th career touchdown.
Arizona were back in front before the end of the first quarter thanks to a moment of magic as Palmer found the time to send his pass to John Brown, and the wide receiver sprinted clear on the right of the field to complete a 65-yard score.
Despite both Palmer and Teddy Bridgewater being hurried with the ball in hand in the second quarter, Minnesota relied on some strong defensive plays to stay in the game before levelling the score when Blair Walsh made a 44-yard field goal just before the interval.
The Vikings were unable to put the pressure on the hosts after the break in play, and the Cardinals were in control once again when Palmer found Michael Floyd, who used a block from Larry Fitzgerald to take the ball to the endzone.
Catanzaro started the fourth quarter with a field goal to make it 20-10, but Walsh responded with one of his own for the away side to make it a one-score game with just over 12 minutes remaining.
Bridgewater held his nerve impressively on an 11-play drive to get his team back level, with Mike Walsh peeling away in the endzone to collect a seven-yard pass.
Palmer led the Cardinals to field goal range as the Vikings produced a solid spell of defense, and Catanzaro delivered the goods with a 47-yard kick to put the home side back in front.
With 1:23 left on the clock, Bridgewater led his side close enough to tie the game but a fumble from the Vikings quarterback forced by Dwight Freeney's tackle allowed Calais Campbell to recover the ball and push the Cardinals to 11-2 for the season.