Zimą 2004 Spahić wyjechał do Rosji i został piłkarzem Szynnika Jarosław. W Szynniku występował w wyjściowej jedenastce i w swoim pierwszym sezonie zdobył 4 gole i przyczynił się do zajęcia 6. miejsca w lidze. W pierwszej połowie 2005 roku Spahić także występował w Szynniku, a latem trafił do Torpeda Moskwa. W klubie tym Bośniak grał jednak przez pół sezonu, ale jego postawą zainteresowały się silniejsze rosyjskie kluby i w 2006 roku za 3 miliony euro przeszedł do Lokomotiwu Moskwa. W barwach nowego klubu zadebiutował 19 marca w przegranym 0:1 meczu z Kryliami Sowietow Samara. Z Lokomotiwem zakończył sezon na 3. miejscu w tabeli. W 2007 roku zdobył z Lokomotiwem Puchar Rosji.
4 lipca 2009 Spahić przeszedł do francuskiego Montpellier HSC, podpisując roczną umowę. W Ligue 1 zadebiutował 7 sierpnia w zremisowanym 1:1 meczu z Paris Saint-Germain i w debiucie zdobył gola.
4 lipca 2011 roku podpisał 3-letni kontrakt z Sevillą, dla której swojego pierwszego gola strzelił 5 stycznia 2013 w wygranym przez jego klub 1:0 meczu z Osasuną Pampeluna.