Linfield made it six wins in a row and are the new leaders of the Irish Premiership after coming from behind to beat Glenavon at Mourneview Park.
Guy Bates put Glenavon in front with a looping header from Andy McGrory's right-wing ball in the 22nd minute.
Michael Carvill pounced to equalise for Linfield five minutes before half-time.
Linfield went in front through an Andrew Waterworth penalty after Gareth McKeown's trip on Michael Gault and Philip Lowry made it 3-1 on 53 minutes.
Glenavon had started the day in second place in the Irish Premiership table.
But after their 3-0 defeat by Crusaders last time out, Andy Coleman was replaced in goals by former Cliftonville keeper John Connolly.
Ciaran Martyn also came into the team with Shane McCabe unavailable because of his involvement in Sunday's Fermanagh GAA final.
Linfield seemed to be bossing the early stages but they were rocked when Bates directed his fine header over the dive of keeper Jonathan Tuffey.
It could have been 2-0 as McGrory's mishit intended cross came off the top of Tuffey's crossbar.
Carvill's close-range equaliser came five minutes before the break after Waterworth and Thompson had put the home defence under pressure.
Then two quickfires goal early in the second half put David Jeffrey's men in control.
There were few complaints from Glenavon when referee Colin Burns awarded the 49th-minute penalty for McKeown's foul on Blues skipper Gault.
Then Lowry, back in the starting line-up, scored his third goal of the season, heading in from Mulgrew's ball.
Danske Bank Irish Premiership
Cliftonville 0-2 Crusaders
Coleraine 2-1 Ards
Glenavon 1-3 Linfield
Glentoran 2-1 Dungannon Swifts
Warrenpoint Town 2-2 Portadown
Coagh United 2-1 Limavady United
Dergview 2-1 Donegal Celtic
Annagh United 1-0 Glebe Rangers
Ballymoney United 3-1 Killymoon Rangers
Chimney Corner 0-2 PSNI
Moyola Park 1-2 Armagh City
Portstewart 0-3 Newington
Sport & Leisure Swifts 3-4 Lurgan Celtic
Tobermore United 2-3 Queen's University