Crusaders recovered from conceding an early goal to beat Ballymena.
An Aaron Boyd shot was fumbled into his own net by Sean O'Neill on four minutes but Jordan Owens headed in unmarked at the back post to equalise soon after.
Owens netted from two yards in the 22nd minute and Colin Coates rifled in from inside the area on 61 minutes.
Davy Munster headed in from a corner on 73, Gary McCutcheon missed a penalty after 79 and Colin Coates was sent off for a rash challenge before the end.
Ciaran Gargan saw his early shot pushed round the post by Wayne Drummond.
Boyd gave Ballymena the lead when his left-foot shot from outside the area was parried into the net by O'Neill.
David Rainey provided the flick-on for Owens to level and then Coates headed wide.
The big striker grabbed his second after Crusaders were controversially awarded a free-kick when referee Raymond Crangle adjudged that Drummond had picked up a backpass.
Gargan took the free-kick and Aidan Watson's shot was deflected in by Owens.
O'Neill redeemed himself by making a fine double save from McCutcheon and Boyd was off-target with a left-foot shot before the break.
After half-time Curtis Woods hit the bar with a right-wing cross and then Coates rifled in his fifth of the season to make it 3-1.
O'Neill saved Alan Teggart's left-foot swinging free-kick before Teggart provided the corner for Munster to head powerfully home.
Owens headed wide and substitute Chris Morrow was then adjudged to have fouled in the area.
The referee pointed to the penalty spot but O'Neill saved McCutcheon's poorly struck effort.
Coates was dismissed 11 minutes from time for a bad challenge on Teggart but the home side held out to collect all three points.