Skipper-for-the-night Kalvin Phillips finally broke Crewe’s stubborn resistance deep in the second half and Harrison sent a full house at Elland Road home happy with two more in the closing stages.
Not since a 1-0 third-round defeat to Liverpool in 2009 had Elland Road sold out for a League Cup tie and after a chanceless opening 20 minutes Leeds shifted through the gears.
Fit-again Diego Llorente’s header was cleared off the goalline by Billy Sass-Davies, Harrison’s shot was parried by Will Jaaskelainen and Phillips flashed a header wide.
Rodrigo and Tyler Roberts both had shots from inside the penalty area blocked and after Harrison’s fine run and cut-back, Junior Firpo’s volley clipped a post.
Helder Costa was next to fire wayward following Llorente’s precision pass, but Crewe held firm until half-time.
There was no let-up for the visitors at the start of the second period as Harrison’s angled effort fizzed across the face of goal.
Leeds continued to pour forward. Rodrigo failed to keep his effort on target and Marcelo Bielsa made clear his intentions by replacing him with substitute Patrick Bamford with 20 minutes remaining.
Crewe’s first shot on target, from substitute Callum Ainley in the 74th minute, was comfortably saved by Illan Meslier before Leeds finally broke the deadlock.
Harrison’s corner fell to Phillips in the six-yard box and he turned home an emphatic finish from close range.
Crewe battled gamely on and briefly rallied, but were then hit on the counter-attack as Harrison dinked home Leeds’s second with five minutes left following Bamford’s deft pass inside.
Harrison slammed home his second and Leeds’s third in the final minute.
Costa’s low shot was well saved by Jaaskelainen, but his fellow winger made no mistake with the rebound.
Leeds United: Meslier, Shackleton, Llorente (Ayling 46), Struijk, Firpo, Forshaw (Klich 61), Phillips, Helder Costa, Roberts,Harrison, Rodrigo (Bamford 69). Unused substitutes: Klaesson, Dallas, Cresswell, Summerville.
Crewe: Jaaskelainen, Adebisi, Ramsay, Sass-Davies, Thomas, Lundstram, Murphy (Griffiths 89), McFadzean, Knight (Johnson 76),Mandron, Finney (Ainley 69). Unused substitutes: MacDonald, Porter, Daniels, Richards.
Referee: B Speedie (Liverpool).