Goals from Leroy Sane, Fernandinho and Raheem Sterling made it eight league wins in a row for Pep Guardiola's side and kept the title race firmly under their control.
Manchester United had moved to within two points with their 1-0 win over Tottenham earlier in the day but City looked unlikely to concede any ground to their rivals after Sane fired home the opener inside 10 minutes.
The Baggies responded swiftly through Jay Rodriguez but City restored their lead two minutes later via a deflected Fernandinho strike.
Guardiola's side continued to dominate possession and eventually found the killer third goal with a little over 25 minutes remaining, as substitute Sterling finished a slick move for his seventh goal in eight league games.
Matt Phillips struck a stoppage-time consolation but it could not derail City's spectacular run ahead of next week's Champions League trip to Napoli, while West Brom remain just two points outside the bottom three after their 12th defeat to City in a row in the top flight.
City's early dominance paid dividends, as Sane collected Fernandinho's pass and forced Allan Nyom to back off towards goal before blasting left-footed past Ben Foster from a tight angle.
The hosts equalised barely three minutes later thanks to an error from Ederson, who found himself stranded from goal as he tried to get to Salomon Rondon's flick-on and allowed Rodriguez to lift the ball into the net.
The frenetic start continued before a quarter of an hour was played, though. Fernandinho was given time to set himself 20 yards out and his shot took a deflection off the studs of Gareth Barry's boot before bobbling in off the left-hand post.
City regained their control of proceedings and David Silva should have headed in a third before the break, but he contrived to nod Kevin De Bruyne's excellent cross over the bar from only six yards out.
West Brom managed less than 25 per cent of the possession in the opening 50 minutes but they continued to carry a threat on the break. Rondon should have done better with a header from close range after the Baggies won back the ball near the City box, and Grzegorz Krychowiak wasted a great chance just after half-time when he nodded Nyom's deep cross straight at Ederson.
They were misses that came back to haunt the home side. With 64 minutes gone, City produced their best passing move of the match and it ended with Kyle Walker sending in a low cross from the right for Sterling, who had the simple task of tapping home from point-blank range.
9 - Among PL players, only Kane (13) and Lukaku (11) have scored more goals than Raheem Sterling in all competitions this term. Punisher. pic.twitter.com/1bNRfAwl82 — OptaJoe (@OptaJoe) October 28, 2017
The visitors entered cruise control but Nicolas Otamendi could have made life a little difficult in the closing stages, the centre-back just pulling out of a lunging challenge on Jake Livermore that could otherwise have earned him a red card rather than a yellow.
Tony Pulis' side did snatch a lifeline in injury time thanks to a dreadful error from Otamendi, who chested a cross back towards Ederson only to see Phillips ghost in and poke the ball into the net, but they remain in a precarious position in the table and 18 points adrift of the leaders.
Key Opta Stats:
- Manchester City have made the best-ever start to a Premier League season after 10 games, collecting 28 points (W9 D1) with a goal difference of +29.
- The Citizens are now unbeaten in 21 games in all competitions (W17 D4); their longest run without defeat in their history.
- Pep Guardiola's side have now won their last eight Premier League games by an aggregate score of 32-5.
- Manchester City completed 844 passes in this game; the most by a team in the Premier League since the start of the 2003-04 campaign.
- Raheem Sterling has scored nine goals in all competitions in 2017-18, the most of any Manchester City player, while only Harry Kane (13) and Romelu Lukaku (11) have netted more among Premier League players.
- Gareth Barry's assist was his first goal involvement in the Premier League since December 2016 (for Everton), ending a run of 27 games in the competition without scoring or assisting.