Hayles nodded home a clever free-kick for the 37th-minute opener and tapped in from close range to wrap up victory four minutes after the interval at Craven Cottage.
But it will be the huge 73rd-minute melee that dominates the Sunday headlines after players from both sides traded blows, with Weir handed his second yellow card and Fulham's Luis Boa Morte sent off for the second time this season.
Referee Phil Dowd consulted both linesmen but did not punish Hayles for his stamp on Weir.
Everton created little and Jean Tigana's side were worthy winners as they began preparations for Wednesday's daunting league clash at Liverpool.
Steve Watson again started as a makeshift forward Walter Smith's side, but Jesper Blomqvist missed out as he has not quite achieved match fitness since his move from Manchester United.
From Fulham's first real attack, in the 13th minute, right-back Steve Finnan delivered a curling cross that Louis Saha, last season's red-hot goalscorer, leapt highest for and headed across the face of goal.
However, the final ball from both sides was all to often inaccurate.
The Cottagers' John Collins - booed by the fans of his former club Everton every time he touched the ball - tried to rectify that and hit a 16th-minute drive that Everton goalkeeper Steve Simonsen comfortably saved.
Everton's only shot of note in the first half was when Alan Stubbs forced home keeper Edwin van der Sar into action for the first time with a firm but optimistic shot from 40 yards.
The match finally burst into life after 37 minutes when Fulham took a deserved lead with a clever free-kick, after Weir fouled Saha 22 yards from goal.
Steed Malbranque swept the free-kick wide to left-back Rufus Brevett, who controlled the ball, thought about a shot and finally dinked a cross into the area, where Hayles rose unmarked to nod the ball into the far corner of the Everton net from seven yards.
Simonsen denied Fulham one of the goals of the season three minutes after the interval.
Malbranque and Boa Morte played a slick double one-two on the right flank and crossed to the far post for Saha to hit a thundering drive that Simonsen palmed behind.
But from the resulting corner, Malbranque whipped the ball into the six-yard box - and Hayles was given the space to tap home his second from just three yards, giving Tigana's side a 2-0 lead.
Fulham fans' favourite Malbranque then embarked on a lightning-quick charge straight through the Everton midfield and defence, with only Scot Gemmill's studs deflecting his powerful shot over the crossbar.
Everton fans did not seem too pleased about the influence the Cottagers' energetic Frenchman was having on the match - and when he prepared to take a corner in front of the travelling support, a bottle was hurled at him.
It appeared to miss, but was the second time in 10 days that away fans had thrown an object at a Fulham player, after the actions of Tottenham fans in the Worthington Cup tie last week.
The match then exploded in the 73rd minute when Boa Morte's challenge on Weir sparked the mass brawl.
Boa Morte caught Weir as he cleared the ball on the edge of his penalty area - and the Everton captain showed a total lack of responsibility as he dragged his foot into Boa Morte's face as he got to his feet.
Hayles then pushed Weir to the floor and appeared to stamp on him, Saha flew into a rage and shoved every visiting player in sight - and van der Sar sprinted 80 yards from his goal to join in.
Ref Dowd consulted both linesmen and showed Weir his second yellow card, followed by a red - and then incurred the wrath of the home crowd by dismissing
Boa Morte, who had not already been booked and appeared to remain on the floor through the melee.