Bandalovski started playing football in the youth team of Levski Sofia at the age of six. He was not offered a professional contract with the club and in the summer of 2004, at the age of 17, signed with Litex Lovech. He earned his first professional cap against Lokomotiv Plovdiv for Bulgarian Supercup in Burgas on 31 July 2004 at the age of 17. In Lovech Bandalovski played several championship matches and was noticed by Feyenoord Rotterdam. In January 2005 the player went on loan to the Dutch team for 18 months. In June 2006 he returned to Litex.
In January 2008 Bandalovski signed Lokomotiv Sofia. Performing as a solid back, it didn't last long until he gained head coach Dragan Okuka's trust and became a starter. Sometimes credited as having a bad temper, he maintained the status of one of the most trustworthy defenders in the league, and soon was called up to the Bulgarian national football team.
In the fall of 2010 he signed with CSKA Sofia. He made his competitive debut for CSKA Sofia on 13 November 2010, in a 1–0 home league win against Lokomotiv Plovdiv. He has won a Bulgarian Cup and Bulgarian Supercup in 2011. In 2012, he won the prize best defender in Bulgarian A Football Group. On 4 March 2012, Bandalovski has first time played for CSKA Sofia as captain in the match against Chernomorets Burgas. He was followed by some clubs in Europe like A.S. Roma, S.S. Lazio, FC Steaua București. On 22 March 2012, Bandalovski has scored his first goal for CSKA, against his former club, Lokomotiv Sofia in 1–0 home win.
In 2012, he became the captain of the team. Due to its financial difficulties the club wasn't able to offer him a new contract, instead it had to release him as a free agent.
On 25 July 2013, Bandalovski signed a three-year contract with Oud-Heverlee Leuven in the Belgian Pro League. Because he was a free agent, the player was brought in without a transfer fee. On 10 August 2013, Bandalovski made his Belgian Pro League debut, playing the full 90 minutes in the 1–1 away draw with KV Oostende. After facing relegation with Oud-Heverlee Leuven, Bandalovski left the team in the summer of 2014.
On 30 January 2015, Bandalovski signed a contract with Serbian team Partizan to replace the injured Miroslav Vulićević. He was given the number 2 jersey upon promotion to the club, and it was revealed that Bandalovski had been recruited by coach Marko Nikolić. For Partizan made his debut on 21 February 2015 against Voždovac. Throughout the spring part of the championship, Bandalovski was played all matches in Serbian Cup and Serbian SuperLiga. During all 18 matches (including the Serbian league and cup of Serbia) he got only one yellow card.
During the first part of the 2015–16 season, after an injury of Gregor Balažic, Bandalovski began to play in the starting lineup as centre defender. On 21 November 2015, he has first time played as centre back against Novi Pazar in 3–0 home league win. Five days later, Bandalovski has played full match against Dutch club AZ Alkmaar at AFAS Stadion in 1–2 away win in 2015–16 UEFA Europa League group stage. On 20 April 2016, Bandalovski scored his first goal for Partizan against Spartak Subotica in the second leg of Semi-finals of Serbian Cup in 3–0 away win.
On 2 March 2017, Bandalovski signed with Vereya until the end of the season. He left the team in June after his contract expired.
On 6 June 2017, Bandalovski signed with Cypriot First Division club Anorthosis Famagusta.
Since 2004 Bandalovski has been playing for Bulgaria's under-21 team. However, in October 2009, he earned his first call-up to the Bulgaria national football team against Georgia. On 14 October 2009, he made his debut against Georgia in 2010 FIFA World Cup qualifier the 6–2 win. On 12 October 2012, Bandalovski was sent off against Denmark after a foul on Daniel Wass in 2014 FIFA World Cup qualifier.
His solid performances with Partizan earned him a return to the national team in the friendly game against Turkey played on 8 June 2015. He also played the full 90 minutes in the 0:1 loss against Norway in a Euro 2016 qualifier held on 3 September 2015.As of 27 June 2017
Bulgarian Cup (1)
Bulgarian Cup (1)
Bulgarian Supercup (1)
Serbian SuperLiga (1)
Serbian Cup (1)