Chris Curran’s second half double helped Ballinamallard sink Coleraine and take his side ahead of the Bannsiders into fifth spot in the Premiership table.
Jay McCartney's first half spot kick put Whitey Anderson's men in front but Coleraine had no answer as they crashed to a fifth defeat in eight league games.
Wingers Jamie Tomelty and Joel Bradley offered occasional hope for Coleraine but the Bannsiders missed the experience of suspended 14-goal striker Curtis Allen.
Ballinamallard, playing away for a fifth time in six games, were far from travel weary and took the game by storm with four second half goals.
United tested home keeper Michael Doherty when stand-in skipper Leon Carters headed Chris Curran's free towards the target.
Ryan Campbell failed to capitalise when he was released into the box but hesitation enabled quick-thinking Doherty to dispossess the striker.
The visitors, with only two wins in their previous seven Premiership games, snatched the advantage from the penalty spot. Referee Mervyn Smyth saw midfielder James McKenna go to ground in the box and Jay McCartney's left foot shot beat Doherty with 26 minutes gone.
Shane Jennings curled an attempt just off target and later directed a shot away at keeper Alvin Rouse.
The striker wasted another chance before the break.
Ruairi Harkin supplied a superb pass to the edge of the box but Jennings again could not beat Rouse.
The visitors, impressive on the counter attack, doubled their lead when home skipper David Ogilby inadvertently headed in Campbell's ball into the danger area on 56 minutes.
Curran snatched the first of his brace just after the hour as the Coleraine defence was caught cold.
Campbell plundered the fourth from inside the box in the 71st minute with Coleraine run ragged and Curran found the net again five miunutes frim time.
Oran Kearney's shell-shocked side mustered themselves to secure a last minute consolation. Tomelty crossed for substitute David Scullion to head home from close range.
Coleraine: Doherty, Canning, Beverland, Ogilby, McIlmoyle, Tomilty, Harkin, Lowry, Bradley (Hegarty 68), Jennings (Scullion 68), Gillan (Boyce 57). Subs: Watt, Owens.
Ballinamallard United: Rouse, Hill, Keohane, Liggett, Carters, Curran, McKenna (Cashel 79), O'Grady, McCartney (Heveron 79), Campbell (McManus 81), Feeney. Subs: Sheridan, Crawford.
Referee: Mervyn Smyth (Belfast).