Raheem Sterling's early header in the first half turned out to be the winning goal as Pep Guardiola's side restored their 10-point lead at the top of the Premier League table.
City were hardly troubled throughout the 90 minutes but lacked ruthlessness in front of goal to extend their lead.
Arsenal did well to weather the storm in the early stages of the game but couldn't find an equaliser and remain 10th in the table.
"We knew today would be one of the toughest ones but we scored early and we could control it," Guardiola said. "The first 10-15 minutes were so good then the next half an hour they were much better than us.
"The feeling is that they are close. In the second half, we needed something to be more effective in our pressing and we were much better."
City started brightly and scored inside two minutes as an unmarked Sterling headed in from Riyad Mahrez's cross.
The visitors threatened to run away with the match after the goal but failed to be clinical enough.
Joao Cancelo also came close to doubling City's lead with 10 minutes to go but his close-range shot just missed the target.
Gabriel Jesus could have scored a second in stoppage time but blazed over from inside the box as City secured the victory.
"When we conceded the first goal it put us in a difficult situation. It was tough. With their formation and players they use they are really comfortable," Arsenal manager Mikel Arteta said. "We didn't do it in the first 10 minutes."
The 18-game win streak, already the longest in English top-flight play, extends the longest stretch of Guardiola's managerial career, with City outscoring opponents 47-6 during the run.
"We're only thinking about the next one," Guardiola added. "The run has been incredible -- I could not expect it, but that is good."