The Tigers led 11-9 after one quarter, 26-22 at halftime, and had a seemingly safe 43-34 lead after three quarters.
The Warriors fought for their basketball lives down the stretch, outscoring Heights 20-16, but the comeback ultimately fell short.
Anthony Gordon led the Tigers with 20 points while Keishon Watson added 17 points and 14 rebounds.
The Warriors were led by Nate Dugener with 22 points.
Muskegon Heights will play Kent City on Friday at 7 p.m. in the Class C district finals at Ravenna.