Arsene Wenger’s side would have moved four points clear of fifth placed Tottenham with a win at the Emirates Stadium.
But they were forced to settle for a point as obdurate Everton’s physical approach succeeded in frustrating the hosts.
Third placed Arsenal are now two points clear of Chelsea and Tottenham in the race to qualify for the UEFA Champions League.
However Arsenal still have plenty of work to do as Chelsea have two games in hand on Wenger’s team, while Tottenham have played a game less than their north London rivals.
Everton remain in sixth place, two points behind Chelsea having played two games more, and a spot in the UEFA Europa League now looks their best bet.
Moyes’ men should have taken the lead in the opening moments when Steven Pienaar eluded the statuesque Bacary Sagna and raced onto Seamus Coleman’s pass.
But with just Wojciech Szczesny to beat, the South African midfielder lifted his shot high over the crossbar.
Despite admitting he had rushed Jack Wilshere back from an ankle injury too quickly, Wenger gave the England midfielder his second appearance in four days.
And the Frenchman was wincing as Wilshere came in for some rough treatment in the early stages.
Crunching challenges from Ross Barkley and Kevin Mirallas left Wilshere writhing on the turf while Wenger leapt to his feet to berate referee Neil Swarbrick for failing to afford his player more protection.
Everton’s aggressive approach had knocked Arsenal out of their rhythm and it took a mistake from Marouane Fellaini to gift the Gunners their first sight of goal.
Fellaini’s wayward pass was collected by Kieran Gibbs in space on the edge of the penalty area, but the left-back’s powerful strike flashed over the bar.
Everton’s attempts to stifle Arsenal were becoming increasingly crude and Gibson’s foul on Theo Walcott finally brought a booking from Swarbrick.
Gibson was fortunate to avoid being sent off for a second booking soon after when he barged into Walcott with no attempt to play the ball.
Swarbrick settled for a quiet word with the Everton midfielder, in the process infuriating the increasingly exasperated Wenger, who made his feelings clear to fourth official Kevin Friend.
The temperature rose even higher when Pienaar was booked for taking out Walcott.
But Victor Anichebe went close to opening the scoring when his shot from Barkley’s pass was blocked by Szczesny.
The best chance of the half fell to Arsenal striker Olivier Giroud. Aaron Ramsey’s burst down the right produced a teasing low cross that picked out Giroud, only for the France international to drag his close-range effort woefully wide.
Santi Cazorla threatened for Arsenal early in the second half as the Spaniard’s half-volley forced a good save from Tim Howard and moments later Giroud clipped a first-time shot narrowly over.
Everton went even closer in the 65th minute when Barkley worked space for a superb strike that beat Szczesny but curled agonisingly past the far post.
Wenger responded by taking off Wilshere and Walcott, with Alex Oxlade-Chamberlain and Lukas Podolski coming on.
Oxlade-Chamberlain should have made an immediate impact when Cazorla’s pass sent the England winger through on goal, but instead of shooting he opted to pass to Giroud, allowing Coleman to get back and clear.
Arsenal had Moyes’ side on the ropes, yet couldn’t deliver the knockout blow as Giroud lashed over from a tight angle.