The match started positively for the visiting Gunners when captain Robin van Persie claimed his 18th goal of the season with just five minutes on the clock. Andrey Arshavin was the architect, slotting the ball through to the Dutchman, who beat Michel Vorm at his near post.
However, the Swans were only behind for 11 minutes. Nathan Dyer collected possession in the area before being brought down by Arsenal midfielder Aaron Ramsey. A penalty was awarded an Scott Sinclair stepped up to place the ball past Wojciech Szczesny.
Ramsey went close to atoning for his earlier error in the 20th minute when he rounded Swansea goalkeeper Michel Vorm. His effort, though, was cleared off the line by Steven Caulker.
Van Persie was presented with a chance to claim his second goal of the match as the half drew to a close, but he shot straight at Vorm from 18 yards out.
The home side began the second half in the ascendancy, with both Dyer and Joe Allen curling efforts inches wide of Szczesny's left upright.
In the 57th minute, Dyer was more accurate to give his side the lead. Allen won possession from Ramsey in the midfield and played a square pass for Dyer. The winger took one touch and then drove the ball beyond the reach of an advancing Szczesny.
Just like Arsenal's earlier in the match, Swansea would only be able to hold onto their advantage for 11 minutes. Johan Djourou split the Swans defence with a pass and Theo Walcott raced through to chip the ball over Vorm.
Rather than dwelling on the setback, Swansea went straight up the other to regain the lead within a matter of seconds. Substitute Gylfi Sigurdsson found Graham, who shot across from Szczesny from a narrow angle and into the bottom corner of the net.
In response, Arsenal centre-back Per Mertesacker shot wide when well placed, while Vorm pulled off a double save to deny Tomas Rosicky and Laurent Koscielny with one minute remaining to secure all three points for Swansea.