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.
Lamonte Bearden led Buffalo with 18 points and five assists. Perkins and CJ Massinbuirg had 15 apiece while Willie Conner and Hamilton finished with 14.
Kassius Robertson led Canisius with 24 points.