It sure looks like Kyle Rudolph will love working with Norv Turner.

And vice versa.

A week after catching just one pass for 22 yards, Rudolph, the Vikings starting tight end, led all first-half receivers with four catches for 89 yards, including a 51-yard catch-and-sprint touchdown as the Vikings rallied to beat the Cardinals 30-28 with a last-minute touchdown at TCF Bank Stadium on Saturday night.

Turner, the Vikings offensive coordinator and a strategist who's noted for being a tight end's best friend, is putting Rudolph in better positions to make plays farther down the field.

The first play of the game was a deep out that went for a 17-yard gain. The 51-yard touchdown came off a crossing route on which Rudolph caught a perfectly thrown 21-yard spiral from Matt Cassel and ran through the defense for the final 30 yards.

The touchdown made up for a Rudolph drop on what should have been a touchdown earlier on third-and-goal. Cassel lobbed the ball over a defender to where only Rudolph could catch it. But the ball went off Rudolph's fingers and the Vikings had to settle for a field goal.

Some D fixing needed

The Cardinals' first three touchdown drives made the Vikings' defense look a lot like its 2013 version.

The first unit gave up nine- and 11-play drives that covered 93 and 59 yards.

The second unit then got rolled on a 19-play, 80-yard drive that consumed 10:06 of the third quarter.

In its two scoring drives against the Vikings' first unit, Arizona converted four of five third downs and its only fourth down, a 1-yard touchdown pass.

A lowlight was an all-too-familiar-to-2013 inability to tackle. Cornerbacks Captain Munnerlyn and Xavier Rhodes both missed tackles near the line of scrimmage on a pass that went for 51 yards to receiver Jaron Brown.

In the 19-play drive against the second unit, the Cardinals converted only 2-of-4 third downs, but went 2-for-2 on fourth-and-1. The touchdown also came on third-and-goal at the 1.

Teddy's wild finish

The Cardinals scored what appeared to be the winning touchdown on a strange play on fourth-and-goal from the 6-yard line with 1:11 left.

The shotgun snap bounced off quarterback Ryan Lindley and was ruled a backward pass. A scrum ensued and offensive lineman John Estes swatted the ball forward.

Rookie running back Zach Bauman scooped it up and ran 10 yards for the touchdown and a 28-24 lead.

The play was reviewed and upheld.

The score was set up by a questionable 33-yard pass interference penalty on cornerback Derek Cox.

It appeared the Vikings would lose, but Bridgewater drove the Vikings down the field, completing five of six passes for 75 yards and a 2-yard touchdown to wide receiver Rodney Smith with 18 seconds left.

Etc.

• In his first preseason action, Marcus Sherels filled in as the No. 3 cornerback, notching a game-high six first-half solo tackles, returning a punt 32 yards and lining up with the second-team defense at left corner to start the second half. With Josh Robinson (hamstring) still hobbled, Sherels got the nod as the nickelback over rookie Jabari Price, who worked there with the first unit in the preseason opener. Sherels played the outside left cornerback spot while Munnerlyn moved inside over the slot.

• Chris Crocker started at strong safety. Kurt Coleman, who started the first preseason game, was the first strong safety off the bench. Jamarca Sanford and Coleman opened the second half with the second team.

• As expected, running back Adrian Peterson was rested again, while nose tackle Linval Joseph (calf), Robinson (hamstring), safety Robert Blanton (hamstring) and tight end Chase Ford (foot) were sidelined because of injuries.

• Vikings cornerback Shaun Prater left the game in the second quarter because of a head injury and was tested for a concussion. He did not return.

• A week after missing a 53-yard field goal wide right, kicker Blair Walsh clanged a 51-yarder off the left upright in the second quarter. He also missed the 33-yard PAT on the winning touchdown with 18 seconds left.