A thumping header by Emmet Friars - his second goal of the season - gave Portadown three precious points in this rather drab encounter.
Neither side had won for a month and the Fermanagh men - who lacked any semblance of power upfront - were the fall guys.
The Ports won this one without the presence of manager Ronnie McFall who was in England at a family funeral. The win keeps them in fifth position in the League.
Portadown came close on eight minutes when captain Keith O’Hara broke down the left and delivered a great ball for ace striker Gary Twigg.
But Mallards keeper Alvin Rouse went full length to make a great low save.
And seconds later Sean Mackle poked one past after Chris Casement did the spadework.
After 19 minutes the Fermanagh team’s left back Danny Keohane saved the Mallards skins when he booted a Mackle effort off the line, and Mackle was right out of luck a minute later when he saw a great effort parried onto the crossbar by keeper Rouse.
The Mallards first sight of goal came on 32 minutes through Nathan Cashel but Gary Breen stood firm to block the chance.
And the Mallards came even closer on 38 minutes when ex-Ports man Richard Lecky got his head to a David Kee free-kick but it was straight at keeper David Miskelly.
Just before the break Neil McCafferty had a golden chance when Twigg set him up but he blasted over the visitors’ stand.
At the restart Lecky burst through a static Portadown defence but his shot just grazed the crossbar.
The game came to life at long last when Friars out-jumped the Mallards defence when he got to the end of an in-swinging corner from Chris Casement to give the Ports a deserved lead.
And Portadown were denied a second on 68 minutes when Rouse made a brilliant save from an oblique Mackle shot and Miskelly did likewise from Cashel when the play moved swiftly to the other end.
Lecky really should have levelled it on 78 minutes when he swung and missed from Ryan Campbell cross, but the ball fell invitingly for Davy Kee but it eluded the big striker.
The Mallards put in a spirited finish but the lack of a man to put the ball in the back of the net cost them dearly with only one win in their last 10 outings.
Portadown: Miskelly, Casement, O’Hara, Breen, Mackle, Murray, McStay, McCafferty, Twigg, Barton, Friars. Subs- Brennan, Mouncey (for McStay 78 mins), Judge, Rooney (for Barton 31 mins), McMahon (for Twigg 92 mins).
Ballinamallard: Rouse, Keohane, Stafford, Kee, Cashel, Hutchinson, Lecky, N Beacom, Campbell, Martin, Crilly. Subs- Crawford, Currie, C Beacom, McManus (for Lecky 79 mins), Sheridan (for Martin 72 mins).
Referee: Ian McNabb