Jim Gofferdo had 14 points and a career-high seven steals for the Crimson (10-12, 3-5), who lost their 10th straight game to the Quakers.
Penn led 32-26 at the half, and 48-37 after a three-point play by Zoller with 8:58 left in the game.
Harvard then closed within 50-44 on two free throws by Gofferdo, but the Quakers ran off 10 straight points, six by Kevin Egee, to help seal the win.
Penn scored 13 straight points early in the first half to take a 15-7 lead, but Harvard answered with a 14-4 spurt to move out to a 21-19 lead.
Penn came right back with a 13-2 run to take a 32-23 lead and never trailed again.