Stephen Murray capitalised on a defensive error to slot beyond Zdenek Zlamal in the 38th minute to send Glenavon in 1-0 up at the break.
Mathew Ferguson made it 2-0 with his first goal at Mourneview when he powered in a header from an Andy Hall corner in the 61st.
Hearts sub Sean Clare scuffed in a late consolation but that couldn’t take the gloss off a fine Glenavon performance.
Glenavon (first half): Jonny Tuffey, Aaron Harmon, Caolan Marron, Seamus Sharkey, James Singleton, Ricardo Rees (trialist), Robbie Garrett, Eoin Wearen, Josh Daniels, Stephen Murray, Jordan Jenkins.
Glenavon (second half): James Taylor, Robbie Norton, Daniel Larmour, Andrew Doyle, James Singleton (Paddy Burns 60), Andy Hall, Conor McCloskey, Sammy Clingan, Thomas Byrne (trialist), Andrew Mitchell (Oisin Barr 82), Matthew Ferguson (Ross Hunter 82).
Hearts: Zdenek ‘Bobby’ Zlamal, Lewis Moore (Dario Zanatta 46), John Souttar, Craig Halkett (Alex Petkov 75), Aidy White (Bobby Burns 46); Ryan Edwards, Harry Cochrane (Sean Clare 46), Oliver Bozanic (Andrew Irving 46), Jake Mulraney (Anthony McDonald 86), Conor Washington (Connor Smith 62), Craig Wighton (Uche Ikpeazu 46). Unused subs: Colin Doyle, Clevid Dikamona.
Referee: Keith Kennedy.