Suppose you have a signal at sampling rate $F_s$ and you want to upsample it by a factor $N$ to a new sampling rate $NF_s$.
The correct way is:
Expand it by inserting $N-1$ zeros between each sample: you get a signal at $NF_s$ and its spectra is a repetition of the original signal spectrum tiled over the frequency axis.
Apply a lowpass filter to remove frequencies above $F_s/2$
If you do it in the opposite order, and filter the original signal (sampled at $F_s$) first, then the filter cannot remove the duplicate spectra at frequencies above $F_s/2$, because it is applied before these spectra are created by expanding. So if you apply a filter before expanding, the spectrum after expanding will be a repetition of the filtered signal spectrum tiled over the frequency axis.
However, the way described above is not the most efficient way to do this. After inserting $N-1$ samples between each original sample, the signal contains a large proportion of zero samples, and their positions are known. Multiplying by zero is a waste of time and resources. So a proper interpolator does this:
Pretend to expand by inserting $N-1$ zeros between each sample. But it doesn't insert the zeros, in fact this step doesn't actually exist.
Convolve with the impulse response of a lowpass filter to remove frequencies above $F_s/2$, as if $N-1$ zeros had been inserted between each sample. This means starting at the correct offset in the impulse response that lines up with a sample that is not zeroed, then skipping the $N-1$ zeroed samples, to only compute the multiply/accumulate operations for the samples that were not virtually zeroed in the expanded signal.
That's why in this manner you don't get two separate blocks, it is done in one operation.