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.