Spajić made his professional debut for Red Star Belgrade on October 27, 2010 in a Serbian Cup match against Borac Čačak. He was subsequently loaned to Red Star's farm team Sopot in the Serbian third tier, where he played the 2011–12 season. In his final season at Red Star, he appeared in 16 games and became recognized as a player with remarkable qualities.
On 29 May 2013, it was announced that Red Star Belgrade and Toulouse FC agreed on Spajić's transfer to the French side for a reported fee of €1.5 million.
Spajić made his Toulouse debut against Valenciennes on the opening day of the 2013–14 season; after Steeve Yago committed a foul to concede a penalty, the uninvolved Spajić was sent off in an apparent case of mistaken identity.