Two-goal Steve Basham returned to his old club to knock Oxford United off the top of the Blue Square Premier table.
Basham struck his first on 24 minutes, clipping home off the inside of a post after being played in by Craig Watkins.
The on-loan striker headed home Adam Green's corner two minutes before half-time, only for Hayes to be reduced to 10 men when Esmond James was sent off.
But, although Simon Clist's left-foot strike quickly pulled one back, Oxford second-half pressure failed to count.
James saw red after the break for violent conduct after an incident with Sam Deering.
And his dismissal allowed the hosts to gain some composure, highlighted when Oxford pulled that goal back through Clist's close-range finish - his sixth of the season.
Clist went close again before John Grant and Matt Green both missed the target as Hayes held out to claim all three points.
On-loan Basham had been ineligible to feature in Saturday's 3-2 home defeat by his parent club Luton.
But, while hampering Oxford's hopes, he improved Luton's own promotion chances as he returned to the Hayes side in style, taking his tally to eight goals for the mid-table Londoners.
Stevenage have gone two points clear thanks to a 4-0 home win over relegation-haunted Barrow, but Oxford still have a game in hand.
Oxford United: Clarke, Batt, Creighton, Day (Cain 31), Wright, Bulman (Midson 76), Hargreaves (Chalmers 46), Clist, Deering, Grant, M Green. Subs Not Used: Turley, Chapman.
Bookmark with:
What are these?