Olson was 20-for-32 for 238 yards. Matt Tuten added 92 receiving yards and a touchdown for the Quakers (6-2, 5-0 Ivy League), and Kyle Derham chipped in with 75 receiving yards and a touchdown.
Lyle Marsh had 99 rushing yards on 12 carries.
Penn jumped out to a 21-0 lead in the second quarter after Luke DeLuca rushed 1 yard for a touchdown.
Princeton (2-6, 1-4) responded with a 2-yard touchdown pass from Tommy Wornham to Andrew Kerr for its only score with 7:56 left in the second quarter.
Princeton was outscored 21-0 in the second half.
Penn had 215 rushing yards, which equaled Princeton's total yards in the game. The Tigers rushed for only 25 yards.
Get Action News on your website
Follow Action News on Facebook
Click here to get the latest Philadelphia news and headlines from across the Delaware and Lehigh valleys.