Cliftonville's title hopes suffered another setback when they lost to Crusaders in an exciting north Belfast derby at Seaview.
Ciaran Caldwell put the visitors into an early lead with a penalty but Jordan Owens equalised for the Crues.
Just before half-time, Chris Scannell restored Cliftonville's lead but Owens immediately netted another leveller.
Crusaders captain Colin Coates tapped in the winner in the 55th minute after the ball had come across the goalmouth.
It was a second defeat in three league games for Tommy Breslin's Reds who had put themselves right in the Premiership frame by winning 10 matches in a row.
Crusaders went into the game without three quality strikers as Timmy Adamson, Michael Halliday and David Rainey were injured.
Chris Morrow was also unavailable as he was suspended.
Cliftonville took the lead in the fifth minute when Paul Leeman's foul on former Crues star Martin Donnelly led to a penalty which Caldwell dispatched.
Owens headed Stephen Baxter's men level in the 34th minute.
Cliftonville seemed to have secured an interval advantage when captain Scannell's mishit finish beat keeper Sean O'Neill.
However, seconds later Owens equalised again with a fine shot from the right side of the penalty area.
The winner came when a ball from the left was touched on by Stuart Dallas, Owens headed it back and home skipper Coates helped himself to his ninth goal of the season.