Improving Glentoran moved up to third in the Premiership table as they proved too strong for Ballinamallard United.
All the goals came in the second half with Calum Birney heading the Glens into the lead on 51 before Cathal Beacom levelled nine minutes later.
However, Jordan Stewart's stunning 63rd-minute volley from almost 30 yards restored Glentoran's advantage.
Jimmy Callacher's 72nd-minute goal increased Glentoran's lead with Stewart scoring his second in added time.
With champions Cliftonville held to a 3-3 draw by Portadown at Shamrock Park, Glentoran's win moves them above the Reds in the table although the East Belfast side remain six points behind leaders Linfield.
There first-half exchanges gave little hint of the excitement that was to follow after the break.
Ballinamallard's David Kee jinked his way into a dangerous position in the 10th minute before firing wide.
At the other end, Ballinamallard keeper Alvin Rouse tipped over a David Scullion effort in the 34th minute with the home team's Nathan Cashel going close late in the half as he nodded wide.
That was about it as the first half was concerned but the pace was to pick up considerably in the second period.
Birney headed the Glens into the lead six minutes after the break as he connected with Stewart's cross.
Ballinamallard were on terms on the hour as Beacom's 25-yard free-kick took a wicked deflection past Elliott Morris.
However, Glentoran were back in the lead within three minutes as Stewart lashed in a magnificent volley from nearly 30 yards.
Callacher increased Glentoran's advantage as he headed a Scullion cross to the net on 72 and Stewart completed the scoring in the second minute of injury-time.
With Dungannon winning against Ards, the defeat drops Ballinamallard to eighth in the table.