Rotan"s career started off for Dnipro Dnipropetrovsk in the 1999–2000 season. He played a total of 105 matches for Dnipro and scored 11 goals. He transferred to Dynamo in the summer of 2005 and was given the number 14.
In Dynamo, he played 50 matches and scored five goals in the Ukrainian Premier League.
During winter break 2007-2008 Rotan was transferred back to his home club of Dnipro Dnipropetrovsk. The transfer fee was undisclosed.
However, he signed a three-year contract with Dnipro. He now wears the number 29 jersey.
He became the top assister of the Ukrainian Premier League of the season 2008–2009.
In the summer of 2014, after his Dnipro contract had expired, Rotan went on trial with Rubin Kazan, nearly signing with the club before turning down the offer due to the political situation around the 2014 Russian military intervention in Ukraine. Rotan eventually signed a new three-year contract with Dnipro on 8 August 2014. Rotan made his debut for Ukraine on 12 February 2003, replacing Andriy Voronin for the final eight minutes of a goalless friendly against Turkey in İzmir.
He scored three goals in seven games in 2006 qualification, going on to play three of their five matches (one start) as they reached the quarter-finals at the tournament.
When Ukraine hosted Union of European Football Associations Euro 2012, he played five minutes as a substitute for Voronin in their opening 2–1 victory over Sweden at the Olympic Stadium in Kyiv. With 78 caps, Rotan is Ukraine"s fifth-most capped player of all time.
He was also on Ukraine"s World cup 2006 squad.