[proofplan]
We establish the isomorphism $H_n^{\mathrm{cell}}(X) \cong H_n(X)$ by identifying $H_n(X)$ with $H_n(X^{n+1})$ via the skeleton inclusion, then expressing $H_n(X^{n+1})$ as a quotient of $H_n(X^n)$ using the long exact sequence of the pair $(X^{n+1}, X^n)$. We then show that the quotient map $q_n$ embeds $H_n(X^n)$ into $H_n(X^n, X^{n-1})$ with image equal to $\ker(d_n^{\mathrm{cell}})$, and that the image of $\partial$ from $H_{n+1}(X^{n+1}, X^n)$ maps to $\operatorname{im}(d_{n+1}^{\mathrm{cell}})$, yielding the desired isomorphism.
[/proofplan]
[step:Reduce $H_n(X)$ to $H_n(X^{n+1})$ via the skeleton inclusion]
By the [Homology of Skeleton Pairs](/theorems/2261) (part 3), the inclusion $X^{n+1} \hookrightarrow X$ induces an isomorphism $H_n(X^{n+1}) \xrightarrow{\sim} H_n(X)$ for all $n$. Indeed, attaching cells of dimension $\geq n + 2$ does not affect $H_n$, since $H_n(X^m, X^{m-1}) = 0$ for $m > n + 1$ forces the inclusion $H_n(X^{n+1}) \hookrightarrow H_n(X^m)$ to be an isomorphism for all $m > n + 1$, and $H_n(X)$ is the direct limit.
[guided]
The first step is to reduce from the full space $X$ to a finite skeleton. Why can we do this? The [Homology of Skeleton Pairs](/theorems/2261) (part 3) states that the inclusion-induced map $H_i(X^m) \to H_i(X)$ is an isomorphism for $i < m$. Taking $m = n + 1$ and $i = n$, we obtain
\begin{align*}
H_n(X^{n+1}) \xrightarrow{\sim} H_n(X).
\end{align*}
The key point is that cells of dimension $\geq n + 2$ are "too high-dimensional" to affect $n$-dimensional homology. More precisely, for $m \geq n + 2$, the relative homology $H_n(X^m, X^{m-1}) = 0$ by part (1) of the skeleton pairs theorem (since $n \neq m$ in this range). The long exact sequence of $(X^m, X^{m-1})$ then shows that $H_n(X^{m-1}) \to H_n(X^m)$ is an isomorphism, so no new $n$-cycles or $n$-boundaries are introduced by attaching higher-dimensional cells.
[/guided]
[/step]
[step:Express $H_n(X^{n+1})$ as a quotient of $H_n(X^n)$ via the long exact sequence of $(X^{n+1}, X^n)$]
The long exact sequence of the pair $(X^{n+1}, X^n)$ includes the segment
\begin{align*}
H_{n+1}(X^{n+1}, X^n) \xrightarrow{\partial} H_n(X^n) \xrightarrow{i_*} H_n(X^{n+1}) \to H_n(X^{n+1}, X^n).
\end{align*}
By [Homology of Skeleton Pairs](/theorems/2261) (part 2), $H_n(X^{n+1}, X^n) = 0$ since $n \neq n + 1$. Therefore $i_*$ is surjective, and by exactness at $H_n(X^n)$ we obtain
\begin{align*}
H_n(X^{n+1}) \cong H_n(X^n) \big/ \operatorname{im}\bigl(\partial : H_{n+1}(X^{n+1}, X^n) \to H_n(X^n)\bigr).
\end{align*}
[guided]
We now need to understand $H_n(X^{n+1})$. The long exact sequence of the pair $(X^{n+1}, X^n)$ reads
\begin{align*}
\cdots \to H_{n+1}(X^{n+1}, X^n) \xrightarrow{\partial} H_n(X^n) \xrightarrow{i_*} H_n(X^{n+1}) \to H_n(X^{n+1}, X^n) \to \cdots
\end{align*}
What is $H_n(X^{n+1}, X^n)$? By [Homology of Skeleton Pairs](/theorems/2261) (part 1), the relative homology $H_i(X^m, X^{m-1})$ is nonzero only when $i = m$. Here $i = n$ and $m = n + 1$, so $n \neq n + 1$ and $H_n(X^{n+1}, X^n) = 0$.
This makes the map $i_*: H_n(X^n) \to H_n(X^{n+1})$ surjective (the next term in the sequence is zero). By exactness at $H_n(X^n)$, $\ker(i_*) = \operatorname{im}(\partial)$. By the first isomorphism theorem:
\begin{align*}
H_n(X^{n+1}) \cong H_n(X^n) / \operatorname{im}(\partial).
\end{align*}
Here $\partial: H_{n+1}(X^{n+1}, X^n) \to H_n(X^n)$ is the connecting homomorphism, and $H_{n+1}(X^{n+1}, X^n) = C_{n+1}^{\mathrm{cell}}(X)$ is the cellular chain group in degree $n+1$.
[/guided]
[/step]
[step:Show that $q_n$ maps $H_n(X^n)$ injectively into $\ker(d_n^{\mathrm{cell}})$]
Consider the long exact sequence of the pair $(X^n, X^{n-1})$:
\begin{align*}
H_n(X^{n-1}) \xrightarrow{i_*} H_n(X^n) \xrightarrow{q_n} H_n(X^n, X^{n-1}) \xrightarrow{\partial_n} H_{n-1}(X^{n-1}).
\end{align*}
By [Homology of Skeleton Pairs](/theorems/2261) (part 2), $H_n(X^{n-1}) = 0$ since $n > n - 1$. Therefore $q_n$ is injective.
The image of $q_n$ is $\ker(\partial_n)$ by exactness at $H_n(X^n, X^{n-1})$. Since $d_n^{\mathrm{cell}} = q_{n-1} \circ \partial_n$, we have $\ker(\partial_n) \subseteq \ker(d_n^{\mathrm{cell}})$.
Conversely, if $d_n^{\mathrm{cell}}(c) = q_{n-1}(\partial_n(c)) = 0$, then $\partial_n(c) \in \ker(q_{n-1})$. From the long exact sequence of $(X^{n-1}, X^{n-2})$, $\ker(q_{n-1}) = \operatorname{im}(i_*: H_{n-1}(X^{n-2}) \to H_{n-1}(X^{n-1}))$. But $H_{n-1}(X^{n-2}) = 0$ by [Homology of Skeleton Pairs](/theorems/2261) (part 2), since $n - 1 > n - 2$. Therefore $\ker(q_{n-1}) = 0$, so $\partial_n(c) = 0$, meaning $c \in \ker(\partial_n)$.
Thus $\ker(\partial_n) = \ker(d_n^{\mathrm{cell}})$, and $q_n$ provides an isomorphism $H_n(X^n) \xrightarrow{\sim} \ker(d_n^{\mathrm{cell}})$.
[guided]
We need to identify $H_n(X^n)$ with a subgroup of $C_n^{\mathrm{cell}}(X) = H_n(X^n, X^{n-1})$. The quotient map $q_n: H_n(X^n) \to H_n(X^n, X^{n-1})$ from the long exact sequence of $(X^n, X^{n-1})$ is our tool.
First, is $q_n$ injective? The long exact sequence reads
\begin{align*}
\cdots \to H_n(X^{n-1}) \xrightarrow{i_*} H_n(X^n) \xrightarrow{q_n} H_n(X^n, X^{n-1}) \to \cdots
\end{align*}
By exactness, $\ker(q_n) = \operatorname{im}(i_*)$. The [Homology of Skeleton Pairs](/theorems/2261) (part 2) states $H_i(X^m) = 0$ for $i > m$. With $i = n$ and $m = n - 1$, we get $H_n(X^{n-1}) = 0$, so $\ker(q_n) = 0$ and $q_n$ is injective.
What is $\operatorname{im}(q_n)$? By exactness at $H_n(X^n, X^{n-1})$, $\operatorname{im}(q_n) = \ker(\partial_n)$ where $\partial_n: H_n(X^n, X^{n-1}) \to H_{n-1}(X^{n-1})$ is the connecting homomorphism.
Now we claim $\ker(\partial_n) = \ker(d_n^{\mathrm{cell}})$. Since $d_n^{\mathrm{cell}} = q_{n-1} \circ \partial_n$, if $\partial_n(c) = 0$ then $d_n^{\mathrm{cell}}(c) = 0$, so $\ker(\partial_n) \subseteq \ker(d_n^{\mathrm{cell}})$.
For the reverse inclusion, suppose $d_n^{\mathrm{cell}}(c) = q_{n-1}(\partial_n(c)) = 0$. Then $\partial_n(c) \in \ker(q_{n-1})$. By the long exact sequence of $(X^{n-1}, X^{n-2})$, $\ker(q_{n-1}) = \operatorname{im}(H_{n-1}(X^{n-2}) \to H_{n-1}(X^{n-1}))$. But $H_{n-1}(X^{n-2}) = 0$ by [Homology of Skeleton Pairs](/theorems/2261) (part 2) with $i = n - 1 > n - 2 = m$. So $\ker(q_{n-1}) = 0$, hence $\partial_n(c) = 0$.
Therefore $\ker(d_n^{\mathrm{cell}}) = \ker(\partial_n) = \operatorname{im}(q_n)$, and $q_n$ gives an isomorphism $H_n(X^n) \cong \ker(d_n^{\mathrm{cell}})$.
[/guided]
[/step]
[step:Identify $\operatorname{im}(\partial)$ with $\operatorname{im}(d_{n+1}^{\mathrm{cell}})$ under $q_n$ and conclude]
Under the injective map $q_n: H_n(X^n) \hookrightarrow H_n(X^n, X^{n-1})$, the subgroup $\operatorname{im}(\partial: H_{n+1}(X^{n+1}, X^n) \to H_n(X^n))$ maps to
\begin{align*}
q_n\bigl(\operatorname{im}(\partial)\bigr) = \operatorname{im}(q_n \circ \partial) = \operatorname{im}(d_{n+1}^{\mathrm{cell}}),
\end{align*}
since $d_{n+1}^{\mathrm{cell}} = q_n \circ \partial$ by definition.
Combining the identifications from the previous steps:
\begin{align*}
H_n(X) &\cong H_n(X^{n+1}) \cong H_n(X^n) / \operatorname{im}(\partial) \\
&\cong \ker(d_n^{\mathrm{cell}}) / \operatorname{im}(d_{n+1}^{\mathrm{cell}}) = H_n^{\mathrm{cell}}(X).
\end{align*}
The first isomorphism is from the skeleton inclusion, the second from the long exact sequence of $(X^{n+1}, X^n)$, and the third from the injection $q_n$ which maps $H_n(X^n)$ isomorphically onto $\ker(d_n^{\mathrm{cell}})$ and carries $\operatorname{im}(\partial)$ onto $\operatorname{im}(d_{n+1}^{\mathrm{cell}})$.
[guided]
We now assemble the pieces. From the previous steps:
1. $H_n(X) \cong H_n(X^{n+1})$ (skeleton inclusion).
2. $H_n(X^{n+1}) \cong H_n(X^n) / \operatorname{im}(\partial)$ (long exact sequence of $(X^{n+1}, X^n)$).
3. $q_n: H_n(X^n) \xrightarrow{\sim} \ker(d_n^{\mathrm{cell}}) \subseteq C_n^{\mathrm{cell}}(X)$ is an isomorphism onto its image.
To complete the argument, we need to check that $q_n$ carries the subgroup $\operatorname{im}(\partial)$ to $\operatorname{im}(d_{n+1}^{\mathrm{cell}})$. This is immediate from the definition: $d_{n+1}^{\mathrm{cell}} = q_n \circ \partial$, so $q_n(\operatorname{im}(\partial)) = \operatorname{im}(q_n \circ \partial) = \operatorname{im}(d_{n+1}^{\mathrm{cell}})$. (Here we use the injectivity of $q_n$ to ensure no collapse occurs.)
By the third isomorphism theorem (or simply by functoriality of quotients under injective maps), the quotient $H_n(X^n) / \operatorname{im}(\partial)$ maps isomorphically to $\ker(d_n^{\mathrm{cell}}) / \operatorname{im}(d_{n+1}^{\mathrm{cell}})$. But the latter is exactly $H_n^{\mathrm{cell}}(X)$ by definition.
Therefore
\begin{align*}
H_n(X) \cong H_n(X^{n+1}) \cong H_n(X^n) / \operatorname{im}(\partial) \cong \ker(d_n^{\mathrm{cell}}) / \operatorname{im}(d_{n+1}^{\mathrm{cell}}) = H_n^{\mathrm{cell}}(X).
\end{align*}
This establishes that the cellular homology of a CW complex agrees with its singular homology in every degree.
[/guided]
[/step]