If you are willing to use a tiny bit of algebraic number theory...
Let $K$ be the splitting field of $f(x)$. By the primitive element theorem, $K = \mathbb{Q}[X]/g(X)$ for some irreducible polynomial $g(X)$. Suppose that $p$ is a prime that does not divide either the discriminant of $g(X)$ or the discriminant of $f(X)$.
Suppose that:
$g(X) \equiv 0 \mod p$ has at least one root.
Then there is a prime $\mathfrak{p}$ of norm $p$ in $\mathcal{O}_K$. But then because $K$ is Galois, it follows that all the primes above $p$ in $K$ also have prime norm, and so $g(X)$ and $f(X)$ automatically factor into linear factors mod $p$ (even distinct linear factors because $p$ does not divide the discriminant).
So it remains to show that we can find a suitable prime $p$ not dividing $N$ for some fixed integer $N$ such that $g(x)$ has a root modulo $p$. Or equivalently, an integer $n$ such that $g(n)$ is divisible by at least one prime $p$ not dividing $N$. There's a standard trick for this --- let $c$ be the constant term of $g(x)$. Replacing $g(x)$ by $g(c x)$ and dividing by $c$, we may assume the constant term is one, after maybe increasing the number of primes dividing the discriminant. Then the values $g(Nk)$ for multiples of $N$ are all prime to $N$, and since $g(x)$ is a polynomial these values can't all be $\pm 1$, so they must be divisible by some new prime $p$.
Example $f(x) = x^3 - 2$, then take (say) $g(x) = x^6 - 3x^5 + 6x^4 - 5x^3 + 6x^2 - 3x + 1$. The primes dividing the discriminant are $2$, $3$, and $5$. So look (say) at $g(30) = 433 \cdot 1526167$. Then both $g(x)$ and $f(x)$ factor into linear factors modulo these primes. (Of course, any prime divisor of $g(n)$ different from $2$, $3$, and $5$ will do, so $g(2) = 43$ is also a prime where $f(x)$ and $g(x)$ factor completely. In fact $43$ is the smallest such prime.