The first step is correct, but the second step is not: You cannot say anything about the kernel after tensoring. Also note that your second step is purely formal and would apply to every additive functor which preserves epis. But not every such functor is right exact.
Let $M_1 \to M_2 \to M_3 \to 0$ be an exact sequence. We want to show that, for every module $N$, the sequence $M_1 \otimes N \to M_2 \otimes N \to M_3 \otimes N \to 0$ is exact, i.e. that $M_2 \otimes N \to M_3 \otimes N$ is a cokernel of $M_1 \otimes N \to M_2 \otimes N$. This means, by the universal property of the cokernel, that for every "test" module $T$, the sequence $0 \to \hom(M_3 \otimes N,T) \to \hom(M_2 \otimes N,T) \to \hom(M_1 \otimes N,T)$ is exact (as abelian groups, but then also as modules). By definition of the tensor product, this sequence is isomorphic to the sequence $0 \to \mathrm{Bilin}(M_3,N;T) \to \mathrm{Bilin}(M_2,N;T) \to \mathrm{Bilin}(M_1,N;T)$. $(\star)$
Thus, the claim is actually equivalent to a statement about bilinear maps. And this can be checked now directly. I will leave out the trivial steps. For the only interesting one, let $\beta : M_2 \times N \to T$ be a bilinear map which vanishes on $M_1 \times N$. Define $\gamma : M_3 \times N \to T$ as follows: If $m_3 \in M_3$, $n \in N$, choose a preimage $m_2 \in M_2$ of $m_3$ and define $\gamma(m_3,n):=\beta(m_2,n)$. This is well-defined, because every other choice of $m_2$ is of the form $m_2+x$ for some $x$ coming from $M_1$, and then $\beta(m_2+x,n)=\beta(m_2,n)+\beta(x,n)=\beta(m_2,n)$. One sees directly that $\gamma$ is bilinear because $\beta$ is. And course $\gamma$ is the desired preimage in $\mathrm{Bilin}(M_3,N;T)$.
This is not the most conceptual proof. You have already mentioned the one using adjoint functors. But we can also choose an alternative ending for the proof above: The sequence $(\star)$ is isomorphic to $0 \to \hom(N,\hom(M_3,T)) \to \hom(N,\hom(M_2,T)) \to \hom(N,\hom(M_1,T))$, which is exact because $\hom(N,-)$ is left exact and $\hom(-,T)$ is right exact.
And yet another ending (which explains Qiaochu's comment): The isomorphism $\mathrm{Bilin}(-,N;T) \cong \hom(-,\hom(N,T))$ shows that this functor is representable and therefore right exact, hence $(\star)$ is exact.
Almost all monomorphisms in $\mathbf{Set}$ are split (hence are preserved by any functor whatsoever), the exceptions being maps with empty domain. So it's just a question of what happens with those maps.
We consider an adjunction
$$F \dashv U : \mathcal{C} \to \mathbf{Set}$$
where the "forgetful" functor $U : \mathcal{C} \to \mathbf{Set}$ reflects monomorphisms. (If $U$ is faithful, then $U$ reflects monomorphisms. In particular this holds when $U$ is monadic, e.g. $U : R\mathbf{-Mod} \to \mathbf{Set}$, $U : \mathbf{CRing} \to \mathbf{Set}$ etc.) Now consider $U F(\emptyset \to X)$ for a non-empty set $X$. There are two cases:
- If $U F \emptyset = \emptyset$, then $U F (\emptyset \to X)$ is an injective map (trivially), so $F (\emptyset \to X)$ is a monomorphism in $\mathcal{C}$.
- If $U F \emptyset \ne \emptyset$, then there exists a map $X \to U F \emptyset$, hence a morphism $F X \to F \emptyset$ by adjoint transposition. But $F \emptyset$ is the initial object in $\mathcal{C}$, so there is a unique morphism $F \emptyset \to F X$; thus the composite $F \emptyset \to F X \to F \emptyset$ must be the identity, i.e. the morphism $F (\emptyset \to X)$ is split monic.
So $F : \mathbf{Set} \to \mathcal{C}$ indeed preserves all monomorphisms.
Best Answer
To amplify, let me point out that it is not even true that an additive functor that preserves epimorphisms/surjections also preserves cokernels. For example, let $\mathcal{C}$ be the full subcategory of $\textbf{Ab}$ spanned by the torsion-free abelian groups. This category, perhaps unexpectedly, is an additive category with kernels and cokernels – but is not an abelian category. Indeed, in $\mathcal{C}$, the cokernel of $2 \cdot {-} : \mathbb{Z} \to \mathbb{Z}$ is $0$, so the inclusion $\mathcal{C} \hookrightarrow \textbf{Ab}$ is an additive functor that preserves surjections but not cokernels (or even epimorphisms in general!). In fact, $\mathcal{C} \hookrightarrow \textbf{Ab}$ is even a right adjoint, and so is left exact in particular. (When I say left/right exact, I always mean a functor that preserves finite limits/colimits.)
However, what is true is that a left exact functor $F : \mathcal{A} \to \mathcal{B}$ that preserves (normal) epimorphisms will be exact, provided $\mathcal{A}$ and $\mathcal{B}$ are both abelian. Indeed, since $\mathcal{A}$ and $\mathcal{B}$ are additive, to show that $F$ is right exact it is enough to show that it is additive and preserves cokernels. Now, it is known that a functor $\mathcal{A} \to \mathcal{B}$ that preserves finite products is automatically additive; but a left exact functor preserves finite products, so is an additive functor in particular. Consider a sequence of morphisms $$0 \longrightarrow A' \longrightarrow A \longrightarrow A'' \longrightarrow 0$$ in $\mathcal{A}$, and suppose $A' \to A$ is kernel of $A \to A''$ and $A \to A''$ is the cokernel of $A' \to A$. Since $F$ preserves kernels, we get an exact sequence $$0 \longrightarrow F A' \longrightarrow F A \longrightarrow F A''$$ in $\mathcal{B}$, and since $A \to A''$ is a (normal) epimorphism, we can extend the above to a short exact sequence in $\mathcal{B}$: $$0 \longrightarrow F A' \longrightarrow F A \longrightarrow F A'' \longrightarrow 0$$ Thus, $F$ preserves cokernels of normal monomorphisms. In general, if we have a morphism $X \to A$ in $\mathcal{A}$, we can factor it as $X \to A' \to A$ where $X \to A'$ is the cokernel of the kernel of $X \to A$, and it is not hard to show that the cokernel of $A' \to A$ is also the cokernel of $X \to A$. Since $F$ preserves all kernels and also cokernels of (normal) monomorphisms, $F$ preserves this factorisation, and therefore the cokernel of $F A' \to F A$ is also the cokernel of $F X \to F A$. However, because $\mathcal{A}$ is an abelian category, $A' \to A$ itself is a (normal) monomorphism, so $F$ preserves its cokernel. Thus $F$ actually preserves all cokernels and is therefore right exact.
Dually, of course, a right exact functor between abelian categories is exact if and only if it preserves (normal) monomorphisms. This explains the classical fact that $M$ is flat if and only if $- \otimes_R M$ preserves injective homomorphisms: $- \otimes_R M$ is a left adjoint and so right exact in particular.