Ballymena United dealt a blow to Linfield’s hopes of retaining the Premiership title after coming from behind to beat the Blues.
Robbie Garrett gave the champions the lead after just four minutes.
But Conor McCloskey levelled with a curling free-kick on 52 minutes before Johnny McMurray scored a long-range screamer to put Ballymena ahead.
Garrett was sent off for a second caution late on as the Blues missed out on the chance to move into third place.
It took Linfield just four minutes to break the deadlock, a Ballymena clearance fell to the feet of Garrett, who fired in from the edge of the area.
Kirk Millar fired two chances over the bar as Linfield went in search of a second goal while Leroy Millar and Kofi Balmer narrowly missed the target for David Jeffrey’s home side.
McCloskey levelled for the Sky Blues seven minutes into the second half as his free-kick deceived Blues keeper Gareth Deane, who started in goals with regular custodian Roy Carroll on international duty with Northern Ireland.
Then seconds after Louis Rooney had poked wide a great Linfield chance, Ballymena went ahead in stunning fashion as McMurray collected Cathair Friel’s flick-on from the resulting goal kick before unleashing a 35-yard strike past Deane.
As Linfield produced pressure, Jordan Stewart skied over Ross Glendinning’s goal, who was called into action to save headers from a frustrated Andrew Waterworth and Mark Stafford.
McCloskey blazed over from inside the area as the hosts went in search of a killer goal, before Garrett was shown a second yellow card with five minutes to go for a late tackle on Friel.
Linfield remain fourth after the defeat, 11 points off leaders Coleraine, while Ballymena jump above Dungannon Swifts into seventh.