The Vikings were in the market for a backup to Adrian Peterson after losing Toby Gerhart to Jacksonville in free agency. McKinnon rushed for 1,050 yards and 12 touchdowns in 10 games last season. He's also played defensive back and quarterback.
The Vikings chose Oregon State defensive end Scott Crichton with the 72nd overall pick in the third round. They did not have a second-round pick after sending it to Seattle on Thursday night in a deal that got them back into the first round to take Louisville quarterback Teddy Bridgewater.
The Vikings also took UCLA linebacker Anthony Barr in the first round at ninth overall.