Info source: Wikipedia

Windows Server OSes are ignored.

Pre-Windows 10

NT49898SEMe2000XPVista788.1
1.0SP6aYesYesYesYesYes
1.0 SP1SP6aYesYesYesYesYes
1.0 SP2SP6aYesYesYesYesYes
1.0 SP3SP6aYesYesYesYesYes
1.1SP6aYesYesYesYesYesYes
1.1 SP1SP6aYesYesYesYesYesYes
2.0YesYesYesSP3SP2****
2.0 SP1SP4SP2****
2.0 SP2SP4SP2****
3.0SP2Yes***
3.0 SP1SP2SP1***
3.0 SP2SP2SP2***
3.5SP2Yes***
3.5 SP1SP2YesYesYesYes
4.0SP3SP1Yes**
4.5SP2SP1Yes*
4.5.1SP2SP1YesYes
4.5.2SP2SP1YesYes
4.6SP2SP1YesUp
4.6.1SP1YesUp
4.6.2SP1Up
4.7SP1Up
4.7.1SP1Up
4.7.2SP1Up
4.8SP1Up

Windows 10+

Version102401058614393150631629917134177631836218363190411904219043190441904522000226212263126100
4.6Yes
4.6.1YesYes
4.6.2YesYesYes
4.7YesYes
4.7.1YesYesYes
4.7.2YesYesYesYesYes
4.8YesYesYesYesYesYesYesYesYesYesYesYesYes
4.8.1YesYesYesYesYesYesYes

Note: .NET Framework 3.5 SP1 is considered a component of the OS in Windows 7 SP1 and above, including 10 and 11 (until build 27965). In Windows 8 and above, they need to be enabled in the control panel, or by trying to run the installer (which would be intercepted by the OS and redirected to the "add system component" wizard). To save space, 3.5 SP1 is not included in this table.

According to The Register, since Windows 11 26H1 (build 28000), or Insider Preview Build 27965, .NET Framework 3.5 is no longer included in Windows 11, and has to be installed via a standalone installer that is specific to these newer versions of Windows 11.

Compatibility notes

.NET Framework Beta 1 supported Windows 95, but Beta 2 no longer does. (source)

1.1 can run 1.0 applications (for the most part). 1.0 and 1.1 can coexist. (source)

Installing 3.0 also installs 2.0, and installing 3.5 also installs 3.0 and 2.0. This is because these 3 versions share version 2.0 of the CLR.

4.5 onwards replace earlier 4.x versions, as they share version 4.0 of the CLR. For the most part, a later 4.x framework can run applications written for an earlier 4.x framework.

See also dotnet9x, a project that backports .NET Framework 3.5 to Windows 9x.