St. Louis trailed by nine late in the first half, rallied to move in front for good early in the second period and then held on down the stretch for the critical road victory.
Although they do not have a spot in the national rankings, St. Louis now leads the A-10 with a 10-2 record and is 21-5 overall.
Butler trailed by three with 26 seconds left when Roosevelt Jones went to the foul line. He made only 1-of-2 to cut the deficit to two and McCall then hit two free throws to account for the final score.
A turnover charged to Butler's Rotnei Clarke moments later sealed the St. Louis win.
McCall scored 18 points and Dwyane Evans had 17 for the Billikens, who turned the ball over just four times on their opponent's court.
Kellen Dunham had 14 points for Butler (22-6, 9-4 A-10).