Glenavon lost in the league for the first time since the end of November when the Glens was the last team to defeat them.
After resisting a sustained spell of pressure from Glenavon the visitors started to come back into it and went ahead after 19 minutes. Curtis Allen ran onto a quickly taken free kick and slotted a shot past Jonny Tuffey from about 12 yards.
Before that Kris Lindsay had put a header onto the top of the bar from an Andy Hall free kick and Rhys Marshall had a header palmed away by Elliott Morris.
In the 16th minute a poor back header by Conor Dillon allowed Chris Lavery in but he got back to clear the winger’s shot off the line.
Kevin Braniff equalised in the 55th minute when he swivelled in the 6 yard box to slam home a downward header by Simon Kelly from Joel Cooper’s right wing corner.
Allen restored the Glens lead in the 68th minute with his second goal of the night after he latched on to a great pass by subsitute Chris Morrow.
A great chance came to level the game as Cooper broke into the Glens box and tried to pick out the unmarked Hamilton in the centre but Birney got a vital touch to take the ball away from the Glenavon player manager.
As the game went into added time a solo run from midfield by Marshall saw him get into the box but his final pass to Martyn ran through to the keeper.
Smith smashed home a low drive to make the points safe for the visitors after he gathered a flick on just outside the Glenavon box in the 92nd minute and Allen spurned a chance to complete his hatrick when he blazed a penalty over the bar in stoppage time after Andy Kilmartin tripped Smith as he ran onto another ball into the box.
Glenavon: Tuffey, Dillon, Lindsay, Kelly, Marshall, Hall, Martyn, Sykes, Cooper, Braniff, Kearns, Subs: Kilmartin (Sykes 73), Patton, McGrory, O’Brien (Lindsay 84), Hamilton (Kearns 73)
Cautions: Cooper 80
Glentoran: Morris, Holland, Birney, Magee, Addis, McCullough, Gordon, Caldwell, Smioth, Lavery, Allen Subs: Gibson, Scullion, Morrow (Gordon 46), D Patton, Hogg (GK)
Cautions: Morris 49, Holland 70, Addis 79
Referee: Tim Marshall