[proofplan]
We construct the maps $\tilde f_n:P_n \to Q_n$ recursively. At degree $0$, projectivity of $P_0$ lifts the map $f\circ \varepsilon_P:P_0\to N$ through the augmentation $\varepsilon_Q:Q_0\to N$. The degree-one step uses exactness at $Q_0$ to turn the vanishing of $\varepsilon_Q\tilde f_0 d_1^P$ into a lift through $d_1^Q$. The general induction step is the same argument one degree higher: the already constructed chain-map identity forces $\tilde f_n d_{n+1}^P$ to land in $\ker d_n^Q$, and exactness identifies this kernel with the image of $d_{n+1}^Q$, allowing projectivity of $P_{n+1}$ to provide the next lift.
[/proofplan]
custom_env
admin
[step:Lift the degree-zero map through the augmentation of $Q_\bullet$]Since $Q_\bullet \to N$ is a projective resolution, the augmentation
\begin{align*}
\varepsilon_Q:Q_0 \to N
\end{align*}
is surjective. Define the $R$-module homomorphism
\begin{align*}
g_0:P_0 &\to N \\
x &\mapsto f(\varepsilon_P(x)).
\end{align*}
Because $P_0$ is projective and $\varepsilon_Q$ is surjective, there exists an $R$-module homomorphism
\begin{align*}
\tilde f_0:P_0 \to Q_0
\end{align*}
such that
\begin{align*}
\varepsilon_Q \circ \tilde f_0 = g_0 = f \circ \varepsilon_P.
\end{align*}
This proves the required augmented identity at degree $0$.[/step]
custom_env
admin
[guided]We begin at the only place where the given map $f:M\to N$ appears directly. The source resolution ends in the augmentation $\varepsilon_P:P_0\to M$, so the composite map we must lift is
\begin{align*}
g_0:P_0 &\to N \\
x &\mapsto f(\varepsilon_P(x)).
\end{align*}
This is an $R$-module homomorphism because it is the composite of the $R$-module homomorphisms $\varepsilon_P$ and $f$.
The target resolution is exact at $N$, so its augmentation
\begin{align*}
\varepsilon_Q:Q_0\to N
\end{align*}
is surjective. Since $P_0$ is projective, the defining lifting property of projective modules applies to the surjection $\varepsilon_Q:Q_0\to N$ and the map $g_0:P_0\to N$. Therefore there exists an $R$-module homomorphism
\begin{align*}
\tilde f_0:P_0\to Q_0
\end{align*}
with
\begin{align*}
\varepsilon_Q\circ \tilde f_0 = g_0 = f\circ \varepsilon_P.
\end{align*}
This is exactly the commutative square at the augmented end of the resolutions.[/guided]
custom_env
admin
[step:Lift the first differential through $d_1^Q$]Define the $R$-module homomorphism
\begin{align*}
a_1:P_1 &\to Q_0 \\
x &\mapsto \tilde f_0(d_1^P(x)).
\end{align*}
Then
\begin{align*}
\varepsilon_Q(a_1(x))
&= \varepsilon_Q(\tilde f_0(d_1^P(x))) \\
&= f(\varepsilon_P(d_1^P(x))) \\
&= 0
\end{align*}
for every $x\in P_1$, because $\varepsilon_P\circ d_1^P=0$. Hence $a_1(P_1)\subseteq \ker \varepsilon_Q$. Exactness of $Q_\bullet\to N$ at $Q_0$ gives
\begin{align*}
\ker \varepsilon_Q = \operatorname{im} d_1^Q.
\end{align*}
Let
\begin{align*}
\rho_1:Q_1 &\to \ker \varepsilon_Q \\
y &\mapsto d_1^Q(y)
\end{align*}
be the codomain-restricted map. The equality $\ker \varepsilon_Q=\operatorname{im} d_1^Q$ says precisely that $\rho_1$ is surjective. Let
\begin{align*}
\bar a_1:P_1 &\to \ker \varepsilon_Q \\
x &\mapsto a_1(x)
\end{align*}
be the same homomorphism with restricted codomain. Since $P_1$ is projective, there exists an $R$-module homomorphism
\begin{align*}
\tilde f_1:P_1\to Q_1
\end{align*}
such that
\begin{align*}
\rho_1\circ \tilde f_1=\bar a_1.
\end{align*}
By the definition of $\rho_1$ and $\bar a_1$, this is
\begin{align*}
d_1^Q\circ \tilde f_1=\tilde f_0\circ d_1^P.
\end{align*}[/step]
custom_env
admin
[guided]The next map $\tilde f_1:P_1\to Q_1$ must make the degree-one chain-map square commute. This means we want
\begin{align*}
d_1^Q\circ \tilde f_1=\tilde f_0\circ d_1^P.
\end{align*}
So define the right-hand side as a map
\begin{align*}
a_1:P_1 &\to Q_0 \\
x &\mapsto \tilde f_0(d_1^P(x)).
\end{align*}
To lift $a_1$ through $d_1^Q$, we first verify that its image lies in the image of $d_1^Q$.
For every $x\in P_1$, the degree-zero identity already constructed gives
\begin{align*}
\varepsilon_Q(a_1(x))
&= \varepsilon_Q(\tilde f_0(d_1^P(x))) \\
&= f(\varepsilon_P(d_1^P(x))).
\end{align*}
Because $P_\bullet\to M$ is a chain complex, $\varepsilon_P\circ d_1^P=0$. Therefore
\begin{align*}
\varepsilon_Q(a_1(x))=0.
\end{align*}
Thus $a_1(P_1)\subseteq \ker\varepsilon_Q$.
Exactness of the augmented complex $Q_\bullet\to N$ at $Q_0$ gives
\begin{align*}
\ker \varepsilon_Q=\operatorname{im} d_1^Q.
\end{align*}
Instead of treating $d_1^Q$ as a map merely into $Q_0$, restrict its codomain to its exact target:
\begin{align*}
\rho_1:Q_1 &\to \ker \varepsilon_Q \\
y &\mapsto d_1^Q(y).
\end{align*}
Exactness says that $\rho_1$ is surjective. Also define
\begin{align*}
\bar a_1:P_1 &\to \ker \varepsilon_Q \\
x &\mapsto a_1(x).
\end{align*}
This is well-defined because we just proved $a_1(P_1)\subseteq \ker\varepsilon_Q$.
Now apply the defining lifting property of the projective module $P_1$ to the surjection $\rho_1:Q_1\to \ker\varepsilon_Q$ and the map $\bar a_1:P_1\to\ker\varepsilon_Q$. We obtain an $R$-module homomorphism
\begin{align*}
\tilde f_1:P_1\to Q_1
\end{align*}
such that
\begin{align*}
\rho_1\circ \tilde f_1=\bar a_1.
\end{align*}
Unpacking the definitions of $\rho_1$ and $\bar a_1$, this becomes
\begin{align*}
d_1^Q\circ \tilde f_1=\tilde f_0\circ d_1^P.
\end{align*}
So the chain-map identity holds in degree $1$.[/guided]
custom_env
admin
[step:Inductively lift each higher differential through the next boundary map of $Q_\bullet$]Let $n\geq 1$, and suppose that $R$-module homomorphisms
\begin{align*}
\tilde f_i:P_i\to Q_i \qquad 0\leq i\leq n
\end{align*}
have been constructed such that
\begin{align*}
d_i^Q\circ \tilde f_i=\tilde f_{i-1}\circ d_i^P
\end{align*}
for every $1\leq i\leq n$. Define
\begin{align*}
a_{n+1}:P_{n+1} &\to Q_n \\
x &\mapsto \tilde f_n(d_{n+1}^P(x)).
\end{align*}
For every $x\in P_{n+1}$,
\begin{align*}
d_n^Q(a_{n+1}(x))
&= d_n^Q(\tilde f_n(d_{n+1}^P(x))) \\
&= \tilde f_{n-1}(d_n^P(d_{n+1}^P(x))) \\
&=0,
\end{align*}
because $d_n^P\circ d_{n+1}^P=0$. Hence $a_{n+1}(P_{n+1})\subseteq \ker d_n^Q$. Exactness of $Q_\bullet$ at $Q_n$ gives
\begin{align*}
\ker d_n^Q=\operatorname{im} d_{n+1}^Q.
\end{align*}
Let
\begin{align*}
\rho_{n+1}:Q_{n+1} &\to \ker d_n^Q \\
y &\mapsto d_{n+1}^Q(y)
\end{align*}
be the codomain-restricted boundary map. This map is surjective. Let
\begin{align*}
\bar a_{n+1}:P_{n+1} &\to \ker d_n^Q \\
x &\mapsto a_{n+1}(x)
\end{align*}
be the same homomorphism with restricted codomain. Since $P_{n+1}$ is projective, there exists an $R$-module homomorphism
\begin{align*}
\tilde f_{n+1}:P_{n+1}\to Q_{n+1}
\end{align*}
such that
\begin{align*}
\rho_{n+1}\circ \tilde f_{n+1}=\bar a_{n+1}.
\end{align*}
Equivalently,
\begin{align*}
d_{n+1}^Q\circ \tilde f_{n+1}=\tilde f_n\circ d_{n+1}^P.
\end{align*}[/step]
custom_env
admin
[guided]Assume that the maps have already been constructed through degree $n$, where $n\geq 1$, and that the chain-map identities
\begin{align*}
d_i^Q\circ \tilde f_i=\tilde f_{i-1}\circ d_i^P
\end{align*}
hold for every $1\leq i\leq n$. We now construct the next map
\begin{align*}
\tilde f_{n+1}:P_{n+1}\to Q_{n+1}.
\end{align*}
The desired identity in degree $n+1$ is
\begin{align*}
d_{n+1}^Q\circ \tilde f_{n+1}=\tilde f_n\circ d_{n+1}^P.
\end{align*}
So define the right-hand side as
\begin{align*}
a_{n+1}:P_{n+1} &\to Q_n \\
x &\mapsto \tilde f_n(d_{n+1}^P(x)).
\end{align*}
To lift $a_{n+1}$ through $d_{n+1}^Q$, we must prove that $a_{n+1}$ lands in $\operatorname{im} d_{n+1}^Q$. Exactness will identify this image with $\ker d_n^Q$, so we check membership in that kernel.
For every $x\in P_{n+1}$, the induction hypothesis in degree $n$ gives
\begin{align*}
d_n^Q(a_{n+1}(x))
&=d_n^Q(\tilde f_n(d_{n+1}^P(x))) \\
&=\tilde f_{n-1}(d_n^P(d_{n+1}^P(x))).
\end{align*}
Since $P_\bullet$ is a chain complex,
\begin{align*}
d_n^P\circ d_{n+1}^P=0.
\end{align*}
Therefore
\begin{align*}
d_n^Q(a_{n+1}(x))=0.
\end{align*}
Thus
\begin{align*}
a_{n+1}(P_{n+1})\subseteq \ker d_n^Q.
\end{align*}
Exactness of $Q_\bullet$ at $Q_n$ gives
\begin{align*}
\ker d_n^Q=\operatorname{im} d_{n+1}^Q.
\end{align*}
Now restrict the codomain of $d_{n+1}^Q$ to the kernel it surjects onto:
\begin{align*}
\rho_{n+1}:Q_{n+1} &\to \ker d_n^Q \\
y &\mapsto d_{n+1}^Q(y).
\end{align*}
This map is surjective by exactness. Also define
\begin{align*}
\bar a_{n+1}:P_{n+1} &\to \ker d_n^Q \\
x &\mapsto a_{n+1}(x).
\end{align*}
This is well-defined because the previous computation proved that $a_{n+1}$ lands in $\ker d_n^Q$.
Since $P_{n+1}$ is projective, the lifting property applies to the surjection $\rho_{n+1}:Q_{n+1}\to\ker d_n^Q$ and the map $\bar a_{n+1}:P_{n+1}\to\ker d_n^Q$. Hence there exists an $R$-module homomorphism
\begin{align*}
\tilde f_{n+1}:P_{n+1}\to Q_{n+1}
\end{align*}
such that
\begin{align*}
\rho_{n+1}\circ \tilde f_{n+1}=\bar a_{n+1}.
\end{align*}
Unwinding the definitions gives
\begin{align*}
d_{n+1}^Q\circ \tilde f_{n+1}=\tilde f_n\circ d_{n+1}^P.
\end{align*}
This is exactly the next chain-map identity.[/guided]
custom_env
admin
[step:Assemble the recursively constructed maps into the required chain map]
By the degree-zero construction, the identity
\begin{align*}
\varepsilon_Q\circ \tilde f_0=f\circ \varepsilon_P
\end{align*}
holds. By the degree-one construction and the induction step applied successively for $n=1,2,3,\dots$, there exist $R$-module homomorphisms
\begin{align*}
\tilde f_n:P_n\to Q_n \qquad n\geq 0
\end{align*}
satisfying
\begin{align*}
d_n^Q\circ \tilde f_n=\tilde f_{n-1}\circ d_n^P
\end{align*}
for every $n\geq 1$. Therefore the family $\tilde f_\bullet=(\tilde f_n)_{n\geq 0}$ is a chain map $P_\bullet\to Q_\bullet$ lifting $f$ at the augmented end. This proves the theorem.
[/step]