Phan was born on August 4, 2001, in Montreal, Quebec, Canada, and is ¾ Vietnamese and ¼ Chinese. He lived in Outaouais and attended École Internationale du Mont-Bleu before moving, in September 2012, to Saint-Leonard, where he attended École primaire Pie-XII. He moved to Laval, Quebec in 2013. He enrolled at École secondaire St-Gabriel.
Phan began his season in August at the 2017 Junior Grand Prix in Brisbane, Australia; he placed second in the short program, seventh in the free skate, and fourth overall. In September, he won silver at his next JGP assignment, in Zagreb, Croatia, where he finished second to Alexei Krasnozhon of the United States. Competing as a senior domestically, Phan finished first, ahead of Nicolas Nadeau and Nam Nguyen, in December at the Skate Canada Challenge. The following month, he placed eighth in the short, fifth in the free, and sixth overall in the senior men's category at the 2018 Canadian Championships. Phan placed fourteenth in the short program, third in the free skate, and fourth overall at the 2018 World Junior Championships in Sofia, Bulgaria. He was awarded a small bronze medal for his free skate. In the off-season Phan landed his first quadruple Lutz.
2018–2019 season
Phan received a Petro-Canada FACE grant in 2018. In August 2018, it was confirmed that Phan had begun training under coach Brian Orser at the Toronto Cricket, Skating and Curling Club. At his first JGP assignment in Lithuania he placed fifth in the short program, but had a very poor free skate, placing ninth overall. Three weeks later in Slovenia, Phan won the bronze medal. Following this, he commented on Instagram that the transition from training in Montreal to training in Toronto had been difficult initially, but that he now felt things had improved. At the 2019 Canadian Championships, Phan placed sixth in the short program after falling on his opening quadruple toe loop attempt, though he succeeded in executing his planned combination near the end of his program on his final jump. In the free skate he was more successful, landing both of his planned quads, and placed fourth, to finish in fourth place overall, moving ahead of teammate Conrad Orzel. He was named alongside Stephen Gogolev to compete at the 2019 World Junior Championships. Competing at Junior Worlds, Phan set a new personal best in the short program, despite putting a hand down on his triple Axel. He dropped to twelfth place after struggling in the free skate.
2019–2020 season
Given two assignments on the Junior Grand Prix, Phan placed sixth in Latvia and fifth in Poland, before making his senior debut on the Challenger series at the 2019 CS Warsaw Cup, where he placed fifth. Phan placed fourth at the 2020 Canadian Championships, and was assigned to compete at the 2020 World Junior Championships in Tallinn, Estonia. He placed eighth in the short program in Tallinn, his only error being a two-footed landing on his triple Axel. Phan performed poorly in the free skate and was fifteenth in that segment, dropping to twelfth place overall.