Regarding the difference between Kufr and Shirk, Sheikh Hamed Al-`Ali, stated the following:

Kufr and Shirk sometimes have the same meaning and sometimes are different. If they are mentioned in the same context, then each one of them has a separate meaning, i.e. Kufr would mean to deny or disbelieve in something that entails leaving Islam such as Salah (Prayer), Zakah (obligatory charity) and everything whose obligation has been established by scholarly consensus (Ijma`), or denying things that entail apostasy from Islam such as worshipping another god other than Allah. Mainly Kufr means denial or rejection of Allah’s Divinity.

Shirk – if mentioned with Kufr in the same context –means associating other partners with Allah, the Almighty.

However, if each one of them is mentioned in different context, it will have both meanings and implications. Thus a Kafir can be called a Mushrik since he or she has taken another god other than Allah.

Allah the Almighty says in the Qur’an:(Have you seen him who makes his desire his god.) (Al-Jathiyah: 23) By the same token a Mushrik may be called Kafir since he or she has denied with his saying, action, or thought the Oneness of Allah.”