Josh Leivo was born on May 26, 1993 in Innisfil, Ontario. A product of the OHLís Sudbury Wolves and Kitchener Rangers, he was drafted in the third round, 86th overall, by the Toronto Maple Leafs in the 2011 NHL Entry Draft.

Upon completion of his fourth junior season, Leivo joined the Toronto Marlies of the American Hockey League for four games to end the 2012-13 season. Leivo would start the 2013-14 season with the Marlies, but was recalled by the Maple Leafs just days into the season. He made his NHL debut on October 10, 2013 in a 4-0 victory over the Nashville Predators.

Leivo would spend the majority of the 2014-15 season with the Marlies, with the exception of nine games played in the NHL with the Maple Leafs.

In 51 games for the Marlies during the 2015-16 season Leivo scored 11 goals and 30 points. His strong play was recognized when he was named to the AHL All Star Game.

In 2016-17, Leivo would find a full-time spot on the Maple Leafs roster, but would struggle to find a place in the lineup. Appearing in just 13 games, he notched a pair of goals and added eight assists. The following season, Leivo would suit up in 16 games for Toronto, recording a goal and three assists.

On December 3, 2018, Leivo's time in Toronto would come to an end. After appearing in 27 games for the Leafs, he was traded to the Vancouver Canucks in exchange for Michael Carcone.