Very interesting question. The answer is made a bit awkward by the difference between how a comparative linguist might answer and what ethnic nationalism feels more accurately reflects the (somewhat idealized) state of affairs. So there are two accurate and mutually contrqadictory answers to many Slavic-language questions.
Upper Sorbian (AKA Wendish or Lusatian), spoken by 40,000 in easternmost Sachsen, Germany, and Lower Sorbian, spoken by 10,000 in Brandenburg just north of them, are distinct dialects which are mutually intelligible.
Czech and Slovak are clearly different languages with a high degree of mutual intelligibility.
Russian and Ukrainian, so I was told by my own Russian teacher, who had lived for several years in the old ukrainian SSR, are clearly distinct languages with differing syntax and vocabulary that nonetheless preserve a fair amount of mutual intelligibility. I got the impression they resemble the Scandinavian languages in this regard. I don’t have similar cite data for Belarussian but I’ve formed the impression it’s a third member of that set – distinct language with quite a lot of common forms with the other two.
Linguistically, Macedonian comprises the westernmost dialects of Bulgarian. For obvious reasons, the Macedonians themselves consider it a distinct language, with separate standards. The matter is made more complex by the fact that historically there has been a spectrum of dialects leaning more towards Serbian on the one hand and toward Bulgarian on the other as one travels south through Serbia into Macedonia and then east into Bulgaria, so that any distinct line between the two languages is slightly arbitrary – the national boundaries come as close as reasonably can be defined, but there’s a fair amount of mutual intelligibility between villages on across the border from each other.
I’ve left for last the thorniest question: the speech forms of the majority of the formerly Yugoslavian nations. I need to preface this by saying that there are strong emotions involved with the various claims, so people may take sharp exception to these comments. That said, most linguistic scholars would say that Croatia, Bosnia-and-Herzegovina, Montenegro, and Serbia all speak a common language, Serbo-Croatian, which is however strongly demarcated into dialects. The longstanding dialects, however, do not reflect the ethnic national borders. The four nations, though, have been adamant in stressing the variations in vocabulary, etc., that make their local dialects unique, and hence consider that they speak Bosnian, Croatian, Serbian – and even in Montenegro, which historically has always spoken Serbian, there is a movement to ‘create’ a Montenegrin language by stressing local vocabulary and idiomatic differences. In point of fact, however, the Shtokavian dialect has become the predominant form throughout the language area, being the standard in Serbia, Montenegro, Bosnia and Herzegovina, and within Croatia in eastern Slavonia, most of mainland Dalmatia, and the literary language; the Kajkavian and Chakavian dialects occur only in central Croatia (around Zagreb) and in Istria and the Adriatic islands respectively. All the variants, however, are for the most part mutually intelligible, with only the sort of vowel variations one might hear in differing English dialects.
Finally Slovenian is a distinct language which apparently has a large amount of mutual intelligibility with the Serbo-Croatian group.