Andrey Petrov sammelte im Jahr 2005 erste internationale Wettkampferfahrung, nachdem er im März bei den Crosslauf-Weltmeisterschaften in Saint-Étienne im U20-Rennen an den Start ging. Darin belegte er den 74. Platz. Danach vergingen einige Jahre, bevor er 2010 zum ersten Mal bei den heimischen Meisterschaften antrat und über 5000 und 10.000 Meter jeweils die Goldmedaille gewinnen konnte. Auch 2011 wurde er Usbekischer Meister im 5000-Meter-Lauf. Im April wurde er beim Halbmarathon von Duschanbe in Tadschikistan mit einer Zeit von 1:05:15 h Zweiter. Ein Jahr später lief er am gleichen Ort eine neue Bestzeit von 1:04:27 h, die seitdem Usbekischer Rekord sind. Anfang Oktober 2012 trat er bei den Halbmarathon-Weltmeisterschaften in Kawarna an und belegte Platz 39. 2013 trat er bei den Asienmeisterschaften im Marathon an und belegte mit einer Zeit von 2:20:24 h den 17. Platz. 2014 nahm er im Oktober zum ersten Mal an den Asienspielen teil, konnte den Marathonwettkampf allerdings nicht beenden. 2015 startete er bei den Asienmeisterschaften in Wuhan. Zunächst trat er im 5000-Meter-Lauf an und belegte mit persönlicher Bestzeit von 14:17,48 min den sechsten Platz. Zwei Tage später bestritt er auch das Finale des 10.000-Meter-Laufes und konnte mit einer Zeit von 30:20,68 min die Bronzemedaille gewinnen. Ende September trat er beim Berlin-Marathon an und landete auf dem 61. Platz. 2016 lief Petrov Anfang Januar in Xiamen eine neue Marathonbestzeit von 2:17:48 h. Damit qualifizierte er sich für die Olympischen Sommerspiele in Rio de Janeiro. In Brasilien ging er im August an den Start, konnte den Wettkampf allerdings nicht beenden.