Cordarrelle Patterson said he "hates" the new kickoff rule that limits his return chances, but he only needed one for a 104-yard touchdown to help the Vikings halt a four-game losing streak in a 30-24 victory Sunday against the Cardinals.

Patterson tied a franchise record with his fifth kickoff return for a touchdown, something only Percy Harvin had done in Minnesota. The return, out of halftime, gave the Vikings a 27-17 lead in the third quarter.

"When I saw the hole open up, a truck could have drove through it," Patterson said.

The 25-year-old dynamic receiver has also reintroduced his presence on offense. He had at least three receptions Sunday for the seventh consecutive game. Patterson finished with four grabs for 53 yards, including a 30-yard catch and run to convert a third down.

This spring, the Vikings declined a fifth-year option for Patterson, the 2013 first-round pick, after a disappointing two seasons under this coaching staff. But he's steadily building his case for a new contract in Minnesota.

"Look what he does on special teams when the ball is in his hands," quarterback Sam Bradford said. "We just feel like he's one of those guys if we can get him five, six, however many touches per game, he's going to create something positive."

Officiating draws attention

Vikings head coach Mike Zimmer declined to discuss what could have been a critical penalty for roughing the passer on defensive tackle Tom Johnson, which gave life to the Cardinals in the closing seconds.

After the game, Johnson said what Zimmer was probably thinking when a turnover on downs turned into a Cardinals first down with 1:07 left in the game.

"What the …?" Johnson said. "That was a bad call. I beat my man clean coming underneath. He's still in the motion of throwing the ball. I hit him when the ball was coming out, so that's a clean hit."

Carson Palmer also had a qualm with officiating on Xavier Rhodes' 100-yard interception return for a touchdown. Palmer targeted Cardinals receiver John Brown, who couldn't break on his route against Captain Munnerlyn.

"It looked like an obvious holding penalty," Palmer said. "It looked like [Brown] could not get out of the grasp of the defender. I am sure we will turn that into the league, and I am sure they'll come back and say it was holding."

Forbath almost perfect

New Vikings kicker Kai Forbath didn't escape his first game without some drama. Forbath made his only field goal attempt from, of all distances, 27 yards and booted through three of four extra-point attempts.

Forbath's lone miss was blocked when Cardinals cornerback Justin Bethel came unblocked from the right edge to make the leaping play. That was after a crowd of 66,808 fans bellowed applause after Forbath converted his first kick as Blair Walsh's replacement.

"I try not to listen to the crowd noise," Forbath said. "But I could hear it on that one."

Red flags for points

The Vikings picked up 12 points thanks to two successful challenges from Zimmer. He threw the red flag and won on two plays in one game for the first time as a head coach.

Zimmer challenged receiver Adam Thielen's impressive 16-yard touchdown catch, which was initially ruled out of bounds. He later successfully overturned the spot on Matt Asiata's 2-yard touchdown run. Zimmer is 5-for-11 on challenges through three seasons as head coach.

"I think he threw the flag before I could say anything," Thielen said.

Tunnel collision

Hitting started before kickoff when a sideline worker with Fox TV was leveled by a combined 588 pounds of Vikings defensive linemen Brian Robison and Linval Joseph as they ran out of the tunnel during pregame announcements.

"We came out of the tunnel and he came out of nowhere. It was like 'boom,' " Robison said. "Pretty sure that was the hit of the game. I think he caught the brunt of both of us, that's the bad part of it."

Etc.

• Punter Jeff Locke had four punts with an average of 56.3 yards, including two that landed inside the 20-yard line, boosting his season total to a career-high 25.

• Sunday marked Vikings cornerback Terence Newman's 200th game and linebacker Chad Greenway's 150th.