The Vikings’ Josh Thommen ran the ball in from two yards out to start the scoring, and Terrell Harris pulled in a 46-yard pass from Shafer to put Whitehall up 14-0 after one quarter.
Shafer (4 yards) and Tylor Russell (15 yards) added second quarter rushing touchdowns and increased the lead to 28-0 at halftime.
Shelby got on the board in the third quarter when Kristian Oberlin found Simon Payne for a 15-yard touchdown pass, making the score 28-7.
But Whitehall pulled away with two rushing touchdowns to end the third quarter, from Russell on a 30-yard run and Shafer on a 90-yard romp.
Russell scored from nine yards out in the fourth, and Hayden Brown finished the scoring for the Vikings with a four-yard score.
Russell led Whitehall with 116 rushing yards on 12 carries and Shafer had 114 rushing yards and 71 passing yards.
Oberlin led Shelby with 131 passing yards and nine tackles on defense.