Kevin Braniff scored a superb 27th-minute free-kick from just outside the penalty area to put Glenavon on the way to victory in the Mid-Ulster derby.
Eoin Bradley made it 2-0 eight minutes later, poking in from close-range after Joel Cooper had played the ball in.
Chris Casement pulled a goal back for the Ports but then Bradley made it 3-1 and Portadown's Robert Garrett was sent-off or two yellows cards.
Andy Kilmartin netted a close-range fourth for Glenavon in stoppage time.
When the score was at 2-0 in the second half, Portadown had lost veteran keeper David Miskelly who appeared to suffer a blow to the head.
Miskelly received treatment on the pitch before being replaced by substitute goalkeeper Martin Mallon.
Garrett's dismissal was in the 71st minute and was Portadown's ninth red card in the Irish Premiership this season.
The defeat leaves Portadown nine points adrift of a place in the top six.