Zack Rosen added 15 points, putting him into the top 10 all-time among Quakers scorers.
Penn (8-9) snapped the Lions' four-game winning streak despite a career-high 25 points and six assists from Brian Barbour.
After Columbia led 27-23 at halftime, the Quakers started the second half with an 8-0 run and never trailed again.
Penn built a 59-50 lead with 2:06 left, then the Lions (11-6) used a 9-2 spurt to get to 61-59.
Barbour twice made baskets to cut the deficit to a point -- with 18 seconds and 6 seconds to go -- and each time Bernardini, making his 100th appearance for the Quakers, answered with two free throws.
Columbia had won five of the past seven in the series.