Early career Millar began his career with Brampton Youth SC at the age of four. Millar scored four minutes into his Liverpool U18s career and marked his debut in the
U18 Premier League with a
hat-trick in a 4–0 victory against
Blackburn Rovers U18s in August 2016. A month later, he signed a professional contract on his 17th birthday. Injury ruled Millar out for three months of his inaugural season but a return in January saw him finish the season with six goals in 17 appearances in the U18 Premier League. He featured in every game of Liverpool's
2017–18 UEFA Youth League campaign and scored twice in eight games. After 18 months under the guidance of
Steven Gerrard in the Under-18s, Millar received his first call-up to the Under-23 squad in January 2018. He made his senior Liverpool debut on February 4, 2020, starting in the
FA Cup fourth-round replay against
Shrewsbury Town. He was replaced by Joe Hardy in the 82nd minute. In mid-2020 Liverpool turned down multiple transfer offers for Millar, who received loan interest from clubs in the
Championship and
Bundesliga.
Loans to Kilmarnock On January 31, 2019, Millar signed a long-term first-team contract with Liverpool and joined Scottish Premiership side
Kilmarnock on loan until the end of the 2018–19 season. He made his debut on February 1 in a 2–1 loss to
Heart of Midlothian. He scored his first goal on March 11 against
St Mirren. He returned on loan to Kilmarnock in August 2019. This loan period was cut short in January 2020 when he returned to his parent club.
Loan to Charlton Athletic On January 5, 2021, Millar completed his move to
Charlton Athletic on loan until the end of the season. He scored his first goal for Charlton on January 26 in a 1–0 league win over
MK Dons. Over the season he played 27 games for the club scoring two goals.
Basel On July 8, 2021,
Swiss Super League club
Basel announced that they had signed Millar on a four-year deal until June 2025. Liverpool confirmed the transfer the same day. The transfer fee was reported to be £1.3 million, with a negotiated a 20 per cent sell-on clause. Having completed medical checks on Tuesday, he signed his contract and joined the team on Thursday July 8 for their
2021–22 season under head coach
Patrick Rahmen. After playing in two test games, Millar played his
domestic league debut for his new club in the away game in the
Letzigrund, coming on as substitute for
Valentin Stocker in the 72nd minute, as Basel won 2–0 against
Grasshopper Club on the opening day of the season on July 25. He scored his first goal for his new team in the
Swiss Cup away game on September 19. It was the first goal of the match in the 35th minute as Basel went on to win 3–0 against amateur club FC Rorschach-Goldach. He scored his first league goal the team two weeks later, on September 26, in the home game in the
St. Jakob-Park as Basel won 3–1 against
Zürich. He scored his first goal in the
UEFA Europa Conference League in the away game on November 4. It was the equaliser, in the 57th minute, as Basel played a 1–1 draw against Cyrian team
Omonia. That season Millar played 31
league games, scoring seven goal, three
Cup games, scoring one goal and 12
Conference League games with two goals. The team advanced as far as the
round of 16 in this competition, but here were eliminated 4–2 on aggregate by
Marseille. In the
following league season he played 26 matches, four in the
Cup and 16 in the
Conference League scoring his sole goal of the entire season against Irish team
Crusaders. The team advanced as far as the semi-finals in
this competition, but here were eliminated 4–3 on aggregate by
Fiorentina.
Loan to Preston North End In September 2023 Millar signed with
EFL Championship side
Preston North End on a loan deal until the end of the
season. He made his debut on September 16 against
Plymouth Argyle, scoring the second goal in a 2–1 victory at
Deepdale. On
Boxing Day, he registered a goal and an assist in a 2–1 home win against
Leeds United.
Hull City 2024–25 season On August 9, 2024, Millar returned to the
EFL Championship with
Hull City. Signing a permanent three-year deal, he arrived for an undisclosed fee. Millar made his debut the next day for the opening game of the
2024–25 season, coming off the bench in a 1–1 home draw with
Bristol City. He scored his first goal for the Tigers on October 1, firing home the final goal in a 3–1 away win over
Queens Park Rangers. A few weeks later, on October 23, Millar started a home match against
Burnley. However, after just 13 minutes he was substituted off having suffered a
major tear to his
anterior cruciate ligament (ACL). On October 26, he was ruled out for the remainder of the season.
2025–26 season Millar spent 11 months recovering from his injury and regaining his fitness. His eventual return came against his former side Preston on September 30, 2025, replacing
Amir Hadžiahmetović at half-time. The Canadian played the final 45 minutes as Hull clawed back a two-goal deficit to draw 2–2 at the
MKM Stadium. Millar then scored the opener in a 2–1 home win over
Leicester City on October 21, his first goal since his injury. Despite the steady improvements, he was hit with another setback just days later, when he suffered a suspected
pulled hamstring in a match against another of his old teams, Charlton, on October 25. == International career ==