It was the first road win of the season for the Bonnies (8-21 overall, 2-12 in A-10), who snapped a six-game losing streak.
The Billikens fell to 16-13 overall and 7-8 in Atlantic 10 games.
Junior guard Kevin Lisch led SLU with 19 points, including four 3-pointers, and four assists. Senior guard Danny Brown scored nine points. Junior guard Tommie Liddell III had eight points on two-of-12 shooting.
Tyler Relph scored a career-high 25 points to lead St. Bonaventure.
The Bonnies outscored the Billikens 36-25 in the first half and 34-25 in the second half.
Saint Louis concludes the regular season next Saturday at Duquesne.