Zavarov started off his career in his home city of Zorya Luhansk. He played in the USSR Premier League for Zorya Luhansk (1977–79, 1982), and also SKA Rostov (1980–81). In 1983–88, he played for the Soviet-Ukrainian giants, Dynamo Kyiv, with whom he won the UEFA Cup Winners' Cup in 1985–86, scoring in the final itself. Zavarov later played for Juventus between 1988 and 1990, becoming the first Soviet player to play in Serie A; he won the Coppa Italia and the UEFA Cup under manager Dino Zoff in 1990, and also wore the iconic number 10 shirt in his first season with the team, which had formerly belonged to club legend Michel Platini, although he later switched to the number 9 shirt, and the number 10 shirt was given to Giancarlo Marocchi the following season. Although much was initially expected of Zavarov at the Turin-based club, his time with Juventus was considered to be less successful, despite his two title victories; in spite of the arrival of compatriot Sergei Aleinikov in his second season with the team, Zavarov also had difficulties settling in at the club, due to his strenuous relationship with the club's manager, Dino Zoff, and also as he struggled to learn Italian. He subsequently transferred to Nancy in 1990, where he remained for five seasons, before finally moving to Saint-Dizier in 1995, retiring after three seasons, in 1998.