Мартин Петров с десяти лет занимался в школе «Ботев» (Враца) у тренера Ангела Ценова. В «Ботеве» он в 16 лет начал карьеру профессионального футболиста, и после успешного сезона в родном клубе перешёл в софийский «ЦСКА». В составе армейского клуба хорошо проявил себя в матчах Кубка УЕФА против швейцарского «Серветта», и следующим летом швейцарский клуб выкупил контракт 19-летнего Петрова за 1,2 миллиона немецких марок.
Вскоре Мартин перешёл в немецкий «Вольфсбург». В сезоне 2004/05 занял четвёртое место в Бундеслиге по системе гол+пас (12+14) летом того же года продан за 10 миллионов евро в мадридский «Атлетико». В июле 2007 года за 7 миллионов евро перешёл в «Манчестер Сити», подписав с «горожанами» трёхлетний контракт, по завершении которого покинул клуб на правах свободного агента.
22 июня 2010 года о подписании Петрова на правах свободного агента объявил «Болтон».
Играл за юношескую сборную Болгарии.
В июне 1999 года Петров дебютировал в сборной страны в отборочном матче Евро-2000 против Англии и уже через 8 минут после выхода на замену был удалён с поля.
На чемпионате Европы-2004 он был одним из ключевых игроков сборной, сыграл во всех трёх матчах и забил единственный гол болгарской команды на этом турнире.
2 сентября 2006 года два гола Петрова на последних минутах матча с румынами позволили Болгарии уйти от поражения. В этом же отборочном цикле он забил еще 2 гола (Словении и Нидерландам) и по итогам 2006 года был признан лучшим футболистом Болгарии.