Western Michigan (13-7, 4-3 Mid-American) led by two at the half as David Brown and Thomas Wilder combined for 24 of the Broncos' 35 points.
After trading baskets at the start of the second, Jarryn Skeete's layup with 12:58 left put Buffalo (13-6, 4-3) up for good. An 8-0 run later - including Skeete's 3-pointer - pushed the lead to 11 and the Bulls held on down the stretch.
Xavier Ford added 16 points for Buffalo on 7-of-9 shooting and Skeete finished with seven points. Buffalo was 2 of 19 beyond the arc, but had 13 steals.
Brown led Western Michigan with 29 points, including five 3-pointers. Wilder added 12 points and Connar Tava had 11 points and five assists.