Glenavon's poor recent run continued as Ryan Campbell's 55th-minute goal earned Ballinamallard United a precious Premiership win at Ferney Park.
Both sides had first-half chances with Glenavon striker Eoin Bradley volleying wide and Campbell and Johnny Lafferty missing Ballinamallard opportunities.
However, Liam Martin's superb run set up Campbell to fire Ballinamallard ahead after the restart.
Glenavon created several chances to equalise but didn't take any of them.
Mark Patton, Kevin Braniff and Bradley [twice] had all wasted chances to get Glenavon on terms before former Shelbourne striker Darren Forsyth missed the most glaring levelling opportunity after 75 minutes.
As Glenavon continued to chase an equaliser, substitute Jason McCartney should have doubled Ballinamallard's advantage in injury-time as he fired wide when clean through on goal.
Glenavon's defeat was their fifth reverse in six Premiership fixtures as Ballinamallard ended a run of three straight losses.