Leeds, who made six changes from Saturday’s 2-2 draw against Everton, started well with Tyler Roberts having an effort blocked, before Adam Forshaw – making his first appearance since September 2019 because of a hip injury – saw his effort saved.
Harrison, who joined the club on a permanent basis from Manchester City this summer, saw an effort tipped behind, with Phillips sending an unmarked header wide from the resulting corner.
Another summer signing, Junior Firpo, hit the outside of the post with a volley as Leeds failed to find the breakthrough.
It eventually came when Phillips ghosted clear of his marker from a corner, and despite not catching the ball cleanly, did enough to beat William Jaaskelainen – son of former Bolton keeper Jussi – in the Crewe goal.
Harrison, who was perhaps the most guilty of lacking precision in front of goal, sealed the win with a delightful dink over the advancing Jaaskelainen, after good hold-up play by substitute Patrick Bamford, before slotting home when left one-on-one.
Leeds United boss Marcelo Bielsa: “It took a long time to score. We missed a lot of chances in a very contested game. Even though [Crewe] created little, they disputed everything.
“Adam Forshaw is very well prepared. He’s sacrificed a lot in the last two months. If he keeps healthy and progressively acquires the competition’s rhythm he has all the virtues to shine.”
Crewe Alexandra manager David Artell on BBC Radio Stoke: “I thought the lads were terrific and they performed admirably. The fans were magnificent too – they should be the first thing we talk about. You could hear the 1,500 of them among the 37,000 here tonight.
“The first goal was always going to pop the cork, and if there is one disappointment from tonight it is the manner that the goal came.
“Marcelo Bielsa came up to us at the end and said the way we set up was magnificent.”
14LlorenteSubstituted forAylingat 45′minutes
4ForshawSubstituted forKlichat 61′minutes
19RodrigoSubstituted forBamfordat 69′minutes
3AdebisiBooked at 82mins
16MurphyBooked at 44minsSubstituted forGriffithsat 89′minutes
10KnightSubstituted forJohnsonat 76′minutes
12MandronBooked at 87mins
14FinneySubstituted forAinleyat 69′minutes
Match ends, Leeds United 3, Crewe Alexandra 0.
Second Half ends, Leeds United 3, Crewe Alexandra 0.
Attempt missed. Hélder Costa (Leeds United) right footed shot from a difficult angle on the right misses to the right. Assisted by Junior Firpo.
Offside, Leeds United. Tyler Roberts tries a through ball, but Hélder Costa is caught offside.
Goal! Leeds United 3, Crewe Alexandra 0. Jack Harrison (Leeds United) left footed shot from the centre of the box to the bottom right corner.
Attempt saved. Tyler Roberts (Leeds United) right footed shot from the centre of the box is saved in the bottom left corner. Assisted by Patrick Bamford.
Substitution, Crewe Alexandra. Regan Griffiths replaces Luke Murphy.
Foul by Junior Firpo (Leeds United).
Travis Johnson (Crewe Alexandra) wins a free kick in the defensive half.
Mikael Mandron (Crewe Alexandra) is shown the yellow card for a bad foul.
Tyler Roberts (Leeds United) wins a free kick on the right wing.
Foul by Mikael Mandron (Crewe Alexandra).
Goal! Leeds United 2, Crewe Alexandra 0. Jack Harrison (Leeds United) left footed shot from the centre of the box to the bottom right corner. Assisted by Patrick Bamford following a fast break.
Foul by Mateusz Klich (Leeds United).
Josh Lundstram (Crewe Alexandra) wins a free kick in the attacking half.
Attempt missed. Patrick Bamford (Leeds United) header from very close range is close, but misses to the right. Assisted by Mateusz Klich with a cross.
Attempt saved. Patrick Bamford (Leeds United) right footed shot from the right side of the box is saved in the bottom right corner. Assisted by Tyler Roberts.
Rio Adebisi (Crewe Alexandra) is shown the yellow card for a bad foul.
Jack Harrison (Leeds United) wins a free kick in the defensive half.