What looked to be a comfortable afternoon, after Theo Walcott put the hosts 2-0 up after half an hour, turned into a second-half slog thanks to Granit Xhaka's 70th minute red card.
Arsenal is now the league's in-form side, having recorded a sixth consecutive win.
'In front of me it looked harsh,' Arsene Wenger said of Xhaka's sending off. 'The referee made the decision and we had to get on with it.
'It's good momentum. What is good is we win the games and we feel in the dressing room we can still go a level higher.
'I felt sometimes we played fantastic today and sometimes we made it a bit too easy (for Swansea) in some situations, and that's what we want to correct.'
Arsenal took the lead after 25 minutes. Alexis Sanchez's lofted pass over the Swansea defense found the head of Hector Bellerin, who nodded the ball into the six-yard box.
Jordi Amat dithered in possesson, allowing Walcott to steal in and prod the ball past Lukasz Fabianski.
Another mistake in the Swansea defense gifted Walcott his second. Federico Fernandez missed his header from a Sanchez corner, leaving Walcott unmarked to control, turn and finish inside the area.
It was looking like a baptism of fire for Swansea's new American coach Bob Bradley, but an error from Xhaka gave the Welsh side a first-half lifeline.
Read: Bob Bradley becomes first American to coach in Premier League
The Swiss international lost the ball in defense, allowing Gylfi Sigurdsson to cut inside onto his left foot and curl a spectacular effort into the top corner past Petr Cech.
In the second half, Sanchez curled an inch-perfect cross onto Mesut Ozil's left foot and the German unleashed an unstoppable volley into the roof of the net to restore Arsenal's two-goal lead.
Spaniard Borja Baston scored his first Swansea goal to reduce the deficit to one goal, before Xhaka's clumsy challenge earned him a controversial straight red card.
Read: Cristiano Ronaldo's $440M second home
Arsenal held out for the final 20 minutes to join Pep Guardiola's City on 19 points at the top of the Premier League.
Meanwhile, in a far from perfect afternoon, Manchester City missed two penalties in an entertaining draw at home to Everton.
Ronald Koeman, former teammate of Guardiola in their Barcelona playing days, took his side to the Etihad just four points behind the league leaders.
Read: Diego Maradona shows combative side in Pope Francis' 'United for Peace' game
Phil Jagielka fouled David Silva just before half time to allow Kevin De Bruyne the chance to give City the lead from the spot, but keeper Maarten Stekelenburg denied the Belgian.
After an hour of completely dominating proceedings, City fell behind after Romelu Lukaku's breakaway goal. The 23-year-old ghosted past Gael Clichy and fired across Claudio Bravo into the far corner.
City was awarded a second penalty after another clumsy challenge from Jagielka. Substitute Sergio Aguero stepped up and saw a second penalty in a week saved, after his miss for Argentina against Paraguay Monday.
The hosts did eventually get a deserved equalizer through Nolito. The Spanish international rose high inside the box to head home Silva's cross.
Read: Liverpool and Manchester United issue warning to fans
'I'm not frustrated,' Guardiola told reporters after the game. 'I make a compliment to Everton -- how they defended. I am sad for the players, they deserved to win the game.
'You can practice penalties but there is no pressure there -- penalties in the crucial moment are penalties. The team will be judged but never will I change the way I want to play football, it's the only way I have.
'We did everything. We cannot be too disappointed because we have to travel to Barcelona,' he finished, looked ahead to Wednesday's Champions League clash.
City has now taken just one point from its previous two Premier League matches, after defeat to Tottenham at the start of October.
Best of the rest
Tottenham Hostpur ensured it didn't fall further behind in the title race after rescuing a late draw away to West Brom.
Former Spurs man Nacer Chadli looked to have given to home side a late victory, but Dele Alli equalized for Mauricio Pochettino's side to ensure the gap to the top remains at just one point.
In the day's early kick-off, champion Leicester continued its poor start to the season with a 3-0 defeat to Chelsea at Stamford Bridge.
Goals from Diego Costa, Eden Hazard and Victor Moses gave Antonio Conte an easy win and heaped more league misery on fellow Italian Claudio Ranieri.
Chelsea moves to within three points of Manchester City, while Leicester languishes in 13th, three points off the relegation zone.
Bournemouth hammered six past a hapless Hull City to move into the top have of the league, as Stoke picked up a first win of the season to move above Swansea into 17th.