Za sezon 2006/2007 został wyróżniony nagrodą dla najlepszego piłkarza Slovana.
Zimą 2007 za pół miliona euro Zápotočný przeszedł do włoskiego Udinese Calcio, z którym podpisał kontrakt do 2011 roku. Tam spotkał swojego rodaka Tomáša Sivoka. W Serie A zadebiutował 25 lutego w spotkaniu przeciwko drużynie Parma F.C. Wywalczył sobie miejsce w wyjściowej jedenastce klubu z Udine i zajął z nim 10. miejsce w lidze, a w następnym sezonie 7.
Latem 2008 roku Zápotočný podpisał kontrakt z tureckim Beşiktasem JK. Kosztował 4,5 miliona euro. W Süper Lig zadebiutował 1 września 2008 w wygranym 2:0 domowym meczu z Konyasporem. W 2009 roku wywalczył mistrzostwo Turcji z Beşiktasem. Latem 2009 został wypożyczony na rok do Bursasporu, w którym swój debiut zanotował 9 sierpnia 2009 w meczu z Kasımpaşą SK. W 2010 roku został drugi raz z rzędu mistrzem kraju, a latem wrócił do Beşiktaşu.
W 2011 roku Zápotočný wrócił do Czech i został piłkarzem Sparty Praga. W 2013 roku odszedł do 1. FK Příbram. Grał w nim do 2018 roku. W sezonie 2016/2017 był wypożyczony do Baníka Ostrawa.