Portadown moved to within two points of Carling Premiership leaders Linfield after winning the Mid-Ulster derby.
The visitors were soon on top but the Glenavon defence held firm and Kyle Neill hit the Ports post.
Kevin Branniff volleyed in the opener off a post on 72 minutes before Neil McCafferty converted a penalty after Kyle Neill fouled Shane McCabe.
Missiles were thrown after the game and fighting broke out between opposing fans before calm was restored.
Braniff was denied a first-half goal by Jay Magee's superb block and then by an excellent O'Hare save from a deflected free-kick.
Portadown striker Matthew Tipton was forced off midway through the first half because of a rib injury.
Neill went closest for the Lurgan Blues when his shot struck the outside of the woodwork early in the second half.
Braniff broke the dealock with a fine finish before McCafferty sealed the points eight minutes from time.