We present a generalization of Bloch's theorem to finite-range lattice systems of independent fermions, in which translation symmetry is broken only by arbitrary boundary conditions, by providing exact, analytic expressions for all energy eigenvalues and eigenstates. By transforming the single-particle Hamiltonian into a corner-modified banded block-Toeplitz matrix, a key step is a bipartition of the lattice, which splits the eigenvalue problem into a system of bulk and boundary equations. The eigensystem inherits most of its solutions from an auxiliary, infinite translation-invariant Hamiltonian that allows for non-unitary representations of translation symmetry. A reformulation of the boundary equation in terms of a boundary matrix ensures compatibility with the boundary conditions, and determines the allowed energy eigenstates. We show how the boundary matrix captures the interplay between bulk and boundary properties, leading to efficient indicators of bulk-boundary correspondence. Remarkable consequences of our generalized Bloch theorem are the engineering of Hamiltonians that host perfectly localized, robust zero-energy edge modes, and the predicted emergence, e.g. in Kitaev's chain, of localized excitations whose amplitudes decay exponentially with a power-law prefactor. We further show how the theorem yields diagonalization algorithms for the class of Hamiltonians under consideration, and use the proposed bulk-boundary indicator to characterize the topological response of a multi-band time-reversal invariant s-wave superconductor under twisted boundary conditions, showing how a fractional Josephson effect can occur without a fermionic parity switch. Finally, we establish connections to the transfer matrix method and demonstrate, using the paradigmatic Kitaev's chain example, that a non-diagonalizable transfer matrix signals the presence of solutions with a power-law prefactor.