[proofplan]
We construct $M \otimes_R N$ as a quotient of the free $R$-module on the set $M \times N$. The quotient relations force the generator indexed by $(m,n)$ to be additive in each variable and compatible with scalar multiplication. Any bilinear map $b: M \times N \to P$ extends to a [linear map](/page/Linear%20Map) on the free module, and the chosen relations lie in its kernel, so it descends to the quotient. The quotient is generated by the images of the elementary generators, which gives uniqueness of the descended map.
[/proofplan]
[step:Construct the quotient module imposing the bilinear relations]
Let $F$ denote the free $R$-module on the set $M \times N$. For each pair $(m,n) \in M \times N$, write $e_{(m,n)} \in F$ for the corresponding basis element. Thus every element of $F$ has a unique expression as a finite sum
\begin{align*}
\sum_{i=1}^k r_i e_{(m_i,n_i)},
\end{align*}
where $k \in \mathbb N$, $r_i \in R$, $m_i \in M$, and $n_i \in N$.
Let $S \subset F$ be the $R$-submodule generated by all elements of the following forms:
\begin{align*}
e_{(m_1 + m_2,n)} - e_{(m_1,n)} - e_{(m_2,n)}, \\
e_{(m,n_1 + n_2)} - e_{(m,n_1)} - e_{(m,n_2)}, \\
e_{(rm,n)} - r e_{(m,n)}, \\
e_{(m,rn)} - r e_{(m,n)},
\end{align*}
for all $m,m_1,m_2 \in M$, all $n,n_1,n_2 \in N$, and all $r \in R$.
Define the $R$-module
\begin{align*}
M \otimes_R N := F/S.
\end{align*}
Let
\begin{align*}
q: F &\to F/S
\end{align*}
be the quotient map. Define
\begin{align*}
\tau: M \times N &\to M \otimes_R N \\
(m,n) &\mapsto q(e_{(m,n)}).
\end{align*}
We also write $m \otimes n := \tau(m,n)$.
[/step]
[step:Verify that the canonical map is bilinear]
We prove that $\tau$ is $R$-bilinear. Let $m_1,m_2 \in M$ and $n \in N$. Since
\begin{align*}
e_{(m_1 + m_2,n)} - e_{(m_1,n)} - e_{(m_2,n)} \in S,
\end{align*}
applying the quotient map $q$ gives
\begin{align*}
\tau(m_1 + m_2,n)
&= q(e_{(m_1 + m_2,n)}) \\
&= q(e_{(m_1,n)}) + q(e_{(m_2,n)}) \\
&= \tau(m_1,n) + \tau(m_2,n).
\end{align*}
The same argument using the second family of generators of $S$ gives
\begin{align*}
\tau(m,n_1+n_2)=\tau(m,n_1)+\tau(m,n_2)
\end{align*}
for all $m \in M$ and $n_1,n_2 \in N$.
Finally, for $r \in R$, the scalar relations in $S$ give
\begin{align*}
\tau(rm,n)=r\tau(m,n),
\qquad
\tau(m,rn)=r\tau(m,n).
\end{align*}
Therefore $\tau$ is $R$-bilinear.
[/step]
[step:Extend an arbitrary bilinear map to the free module]
Let $P$ be an $R$-module, and let
\begin{align*}
b: M \times N &\to P
\end{align*}
be an $R$-bilinear map. Define an $R$-linear map
\begin{align*}
B: F &\to P
\end{align*}
on finite sums by
\begin{align*}
B\left(\sum_{i=1}^k r_i e_{(m_i,n_i)}\right)
:=
\sum_{i=1}^k r_i b(m_i,n_i).
\end{align*}
This is well-defined because each element of the free module $F$ has a unique finite expression in the basis $\{e_{(m,n)} : (m,n) \in M \times N\}$. It is $R$-linear by construction.
[/step]
[step:Show that the bilinear relations lie in the kernel]
We show that $S \subset \ker B$. Let $m_1,m_2 \in M$ and $n \in N$. Since $b$ is additive in the first variable,
\begin{align*}
B(e_{(m_1+m_2,n)} - e_{(m_1,n)} - e_{(m_2,n)})
&= b(m_1+m_2,n)-b(m_1,n)-b(m_2,n) \\
&= 0.
\end{align*}
Similarly, for $m \in M$ and $n_1,n_2 \in N$, additivity in the second variable gives
\begin{align*}
B(e_{(m,n_1+n_2)} - e_{(m,n_1)} - e_{(m,n_2)})=0.
\end{align*}
For $r \in R$, $m \in M$, and $n \in N$, $R$-linearity of $b$ in each variable gives
\begin{align*}
B(e_{(rm,n)} - r e_{(m,n)})
&= b(rm,n)-r b(m,n) \\
&=0,
\end{align*}
and
\begin{align*}
B(e_{(m,rn)} - r e_{(m,n)})
&= b(m,rn)-r b(m,n) \\
&=0.
\end{align*}
Because $S$ is generated as an $R$-submodule by these elements and $B$ is $R$-linear, every element of $S$ lies in $\ker B$.
[/step]
[step:Descend the extended map to the quotient]
Since $S \subset \ker B$, define
\begin{align*}
\widetilde b: M \otimes_R N &\to P \\
q(x) &\mapsto B(x).
\end{align*}
This map is well-defined: if $q(x)=q(y)$, then $x-y \in S$, so $B(x-y)=0$, and hence $B(x)=B(y)$. The map $\widetilde b$ is $R$-linear because both $q$ and $B$ are $R$-linear and the formula is defined through representatives.
For every $(m,n) \in M \times N$,
\begin{align*}
(\widetilde b \circ \tau)(m,n)
&= \widetilde b(q(e_{(m,n)})) \\
&= B(e_{(m,n)}) \\
&= b(m,n).
\end{align*}
Thus $b=\widetilde b \circ \tau$.
[/step]
[step:Prove uniqueness from generation by elementary tensors]
Let
\begin{align*}
L: M \otimes_R N &\to P
\end{align*}
be an $R$-linear map satisfying $b=L\circ \tau$. We prove that $L=\widetilde b$.
Every element of $M \otimes_R N=F/S$ is a finite $R$-linear combination of elementary tensors $m \otimes n$, because every element of $F$ is a finite $R$-linear combination of the generators $e_{(m,n)}$ and the quotient map sends $e_{(m,n)}$ to $m \otimes n$. For each elementary tensor,
\begin{align*}
L(m \otimes n)
&= L(\tau(m,n)) \\
&= b(m,n) \\
&= \widetilde b(\tau(m,n)) \\
&= \widetilde b(m \otimes n).
\end{align*}
Since $L$ and $\widetilde b$ are $R$-linear and agree on a spanning set of $M \otimes_R N$, they agree on all of $M \otimes_R N$. Therefore $\widetilde b$ is unique.
This proves that the constructed pair $(M \otimes_R N,\tau)$ satisfies the stated universal property.
[/step]