The formation of paralogs through gene duplication is a core evolutionary process. For paralogs that encode components of protein complexes such as the ribosome, a central question is whether they encode functionally distinct proteins or whether they exist to maintain appropriate total expression of equivalent proteins. Here, we systematically tested evolutionary models of paralog function using the ribosomal protein paralogs Rps27 (eS27) and Rps27l (eS27L) as a case study. Evolutionary analysis suggests that Rps27 and Rps27l likely arose during whole-genome duplication(s) in a common vertebrate ancestor. We show that Rps27 and Rps27l have inversely correlated mRNA abundance across mouse cell types, with the highest Rps27 in lymphocytes and the highest Rps27l in mammary alveolar cells and hepatocytes. By endogenously tagging the Rps27 and Rps27l proteins, we demonstrate that Rps27- and Rps27l-ribosomes associate preferentially with different transcripts. Furthermore, murine Rps27 and Rps27l loss-of-function alleles are homozygous lethal at different developmental stages. However, strikingly, expressing Rps27 protein from the endogenous Rps27l locus or vice versa completely rescues loss-of-function lethality and yields mice with no detectable deficits. Together, these findings suggest that Rps27 and Rps27l are evolutionarily retained because their subfunctionalized expression patterns render both genes necessary to achieve the requisite total expression of two equivalent proteins across cell types. Our work represents the most in-depth characterization of a mammalian ribosomal protein paralog to date and highlights the importance of considering both protein function and expression when investigating paralogs.