Стоянов начал свою профессиональную карьеру в родном городе в команде «Сливен». В 2005 году он подписал контракт с клубом немецкой Бундеслиги «Штутгарт». Однако провёл лишь 1 матч за дублирующую команду и в мае 2006 года вернулся в «Сливен». Блестяще проведя сезон 2008/09 с командой, 24 мая 2009 года Стоянов подписал трёхлетний контракт с софийским ЦСКА.
30 июля 2009 года Стоянов дебютировал за ЦСКА в третьем квалификационном раунде Кубка УЕФА в матче против ирландского «Дерри Сити». Тогда Стоянов впервые отличился за ЦСКА.
25 февраля 2010 года Иван перешёл в «Аланию» из Владикавказа, а летом 2011 года вернулся в Болгарию, в клуб «Лудогорец».
Алания: