The hosts almost made a perfect start to the match when Leon Osman sent a dipping volley just past the post in the second minute with Wojciech Szczesny beaten.
Mathieu Flamini was the first Arsenal player to test Tim Howard, drilling a powerful half-volley from 25 yards down the throat of the American keeper.
The Toffees took the lead in the 14th minute when Steven Naismith continued his good recent goalscoring form by stroking home a rebound after Romelu Lukaku's initial effort was saved by Szczesny.
They threatened again shortly after as Leighton Baines whipped a dangerous delivery across the face of goal that James McCarthy turned back into the path of Naismith, but the Scot's effort was easy for the keeper.
Szczesny was called into action again on the half-hour mark, denying Everton twice in quick succession, as first Ross Barkley and then Kevin Mirallas saw shots saved.
He could do nothing about the second goal, however, as Lukaku received Mirallas's pass on the right before cutting inside and slotting his effort into the bottom corner.
The Gunners almost pulled a goal back with five minutes left of the half when Lukas Podolski's mis-hit shot bounced up and over Howard, but the hosts' keeper reacted well to tip the effort behind.
Should the result stay the same, then Everton would be just one point behind Arsenal in the Premier League table with a game in hand over the Gunners.