Leroy Sane booked Manchester City's place in the Carabao Cup fourth round after they survived a scare at West Brom.
The winger's brace kept Pep Guardiola's side on track in the competition as they clinched a deserved 2-1 win.
Claudio Yacob's second-half equaliser briefly threatened to take the tie into extra time and make a mockery of City's dominance after they almost ran riot in the first half.
Sane, Gabriel Jesus, Raheem Sterling and Eliaquim Mangala almost put the game out of sight before the break but were let down by bad finishing or thwarted by the excellent Ben Foster.
Albion made it more of a contest in the second half and Hal Robson-Kanu hit the post in injury time.
But City's night was tarnished after Ilkay Gundogan limped off on his first start since December following a serious knee injury.
He was forced off following a tackle from Yacob which left boss Guardiola upset on the touchline.
The Germany international was one of eight changes from the 6-0 rout of Watford.
And he had an instant impact, playing a major part in Sane's third-minute opener as City continued their hot streak, having scored 15 goals in their previous three games.
Gundogan -- who netted twice at The Hawthorns last season -- met a cross from the right and his effort was parried by Foster but Sane followed up to smash in the rebound from eight yards.
With City averaging a goal every 18 minutes before the game they almost made it 2-0 in the 18th minute when Foster clawed out Mangala's header
The visitors were in the mood and Jesus should have scored after 26 minutes when he easily beat Gareth McAuley, only to fire over from 10 yards.
A second seemed just a matter of time as Albion, winless in their last three Premier League games, failed to get out of their half and gain any momentum and Sterling almost made it 2-0 at the break -- but his injury-time curling effort was turned behind by the overworked Foster.
Fresh from half-time, Jay Rodriguez glanced a header well wide for West Brom but City were fuming when the impressive Gundogan limped off after a heavy tackle from Yacob.
He was eventually replaced by Kyle Walker just before the hour it did not disrupt the visitors, despite Guardiola's clear angst on the touchline.
Foster saved from Sterling before the Baggies almost stunned City when James Morrison missed a glorious opening after 69 minutes.
Robson-Kanu and Salomon Rondon combined to set up Morrison but the Scotland international could only prod wide from six yards with just Claudio Bravo to beat.
It was a let-off for City but one they failed to heed as Albion levelled on 72 minutes when Yacob scored his first goal in four years as he cashed in on slack marking to volley in Kieran Gibbs' corner.
Suddenly the Baggies had the initiative and Robson-Kanu miscued horribly when he shot wide, then Bravo palmed away Morrison's drive -- before City immediately broke to win the tie with 13 minutes left.
Bernardo Silva led the charge to find Sane and the Germany international curled a superb effort into the top corner from 17 yards.
Rondon nearly levelled instantly when his header flew wide and Robson-Kanu wasted a glorious chance deep in injury time.
He was left free in the area with only Bravo to beat when the ball deflected into his path but somehow hit the outside of the post to allow City to progress.