Harvin scored the go-ahead touchdown on a three-yard pass from quarterback Christian Ponder, as the Vikings lead at the half, 14-7.
Running back Adrian Peterson has added 92 yards rushing on 11 carries, with plenty coming after contact.
The Vikings nearly gave the Cards a free three points near the end of the half. With 14 seconds left and the ball on their own 21, Ponder threw a pass that was picked off. But kicker Jay Feely was wide right on a 47-yard field goal attempt that would have pulled Arizona to within four points.