Zagorac began his professional career with Mega Vizura starting with 2012–13 season. He spent the 2013–14 season on loan to Smederevo 1953. He returned to Mega for the 2014–15 season. On 1 October 2015, in the Round 1 game of the Adriatic League against Crvena zvezda, he broke his left arm.[1] He returned to the court on 17 January in a game against Tajfun. Until the end of the season he played a total of 13 Adriatic League games, averaging 13.1 points, 5.9 rebounds and 2.4 assists per game. Mega Leks made it to the Finals where it lost to Crvena zvezda. In April 2015, Zagorac declared himself eligible for the 2015 NBA draft,[2] only to withdraw later.[3] On 2 July 2016, Zagorac signed a new two-year contract with Mega Leks.[4] Over 26 games in the 2016–17 ABA League season, he averaged 15 points, 6.5 rebounds and 2.5 assists per game.
On 23 June 2016, Zagorac was selected with the 35th overall pick in the NBA draft by the Boston Celtics.[5] His draft rights were later traded to the Memphis Grizzlies, for a future first-round pick.[6] He played for Grizzlies during the 2017 NBA Summer League. On 17 July 2017, he signed with the Grizzlies.[7] On 16 October, Grizzlies waived him prior the start of the 2017–18 season.[8]
On 28 November 2017, Zagorac signed with Spanish club Real Betis Energía Plus until the end of the 2018–19 season.[9] On 29 June 2018, Real Betis Energía Plus parted ways with Zagorac.[10]
On 30 June 2018, Zagorac signed a two-year deal with Partizan.[11] He left Partizan in July 2022.[12]