The Bulls (4-2) scored the last five points of the extra session over the final 1:17 for the win. Blake Hamilton made a layup and later 1 of 2 from the line, before Malcolm McMillan's turnover for Canisius led to Perkins' game-winner.
Buffalo's Jarryn Skeete hit a 3-pointer with eight seconds to go in regulation to force overtime at 87-all after Canisius (2-3) made a 9-0 run to take an 87-84 lead with 20 seconds left.
An 11-2 run to end the first half - including a 3-pointer by Hamilton with nine seconds left - gave Buffalo a 42-33 lead at intermission.
Kassius Robertson led Canisius with 24 points.