Linfield maintain their three-point lead at the top of the table after a topsy-turvy encounter at Windsor Park.
Rhys Marshall headed Glenavon into a 17th-minute lead but Mark McAllister headed in from a James Knowles corner 10 minutes into the second half.
Andy Waterworth steered the ball into the net in the 84th minute and then substitute Aaron Burns fired in from a tight angle four minutes later.
Substitute David Rainey beat Jonny Tuffey one minute from time for 3-2.
Blues manager David Jeffrey responded to last week's shock defeat at Dungannon by making four changes to his starting line-up, including the return of skipper Michael Gault.
Marshall headed in from a Mark Patton cross after Tuffey punched out Patton's initial effort back into the winger's path.
As the Blues searched for an equaliser, McAllister headed straight into the hands of John Connolly and Knowles headed just wide.
Waterworth had a couple of chances, including having a shot blocked.
The home side dominated the second half and after McAllister's goal, Billy Joe Burns went close with an audacious chip and Connolly saved from Waterworth.
Linfield nudged in front when Waterworth rounded Connolly and slipped the ball home for his 13th goal of the season after meeting Jamie Mulgrew's cross.
Burns made it 3-1 after meeting a Sean Ward free-kick, and Rainey's late goal was a mere consolation.
"We didn't create much in the first half as we didn't have the ball but our performance in the second half was much better," said Linfield manager David Jeffrey.