[proofplan]
We apply the [Dynkin Pi System Lemma](/theorems/505) to show that the collection of sets where $\mu_1$ and $\mu_2$ agree contains $\sigma(\mathcal{A}) = \mathcal{E}$. For finite measures, the sets of agreement form a d-system, and Dynkin's lemma upgrades agreement on $\mathcal{A}$ to agreement on all of $\mathcal{E}$. The $\sigma$-finiteness hypothesis reduces the general case to the finite case via restricted measures and continuity from below.
[/proofplan]
[step:Handle the finite-measure case via Dynkin's lemma]
Assume first that $\mu_1(E) = \mu_2(E) < \infty$.
Define
\begin{align*}
\mathcal{D} = \{ A \in \mathcal{E} : \mu_1(A) = \mu_2(A) \}.
\end{align*}
[claim:D Is A D System]
$\mathcal{D}$ is a d-system on $E$ containing $\mathcal{A}$.
[/claim]
[proof]
By hypothesis, $\mu_1 = \mu_2$ on $\mathcal{A}$, so $\mathcal{A} \subseteq \mathcal{D}$.
We verify the three d-system axioms.
First, $E \in \mathcal{D}$ since $\mu_1(E) = \mu_2(E)$ by assumption.
Second, if $A, B \in \mathcal{D}$ with $A \subseteq B$, then $\mu_1(B \setminus A) = \mu_1(B) - \mu_1(A) = \mu_2(B) - \mu_2(A) = \mu_2(B \setminus A)$, where the subtraction is valid because both measures are finite.
Hence $B \setminus A \in \mathcal{D}$.
Third, if $(A_n)$ is an increasing sequence in $\mathcal{D}$, then by continuity of measure from below,
\begin{align*}
\mu_1\!\left(\bigcup_n A_n\right) = \lim_n \mu_1(A_n) = \lim_n \mu_2(A_n) = \mu_2\!\left(\bigcup_n A_n\right).
\end{align*}
Hence $\bigcup_n A_n \in \mathcal{D}$.
[/proof]
Since $\mathcal{D}$ is a d-system containing the $\pi$-system $\mathcal{A}$, the [Dynkin Pi System Lemma](/theorems/505) gives $\sigma(\mathcal{A}) \subseteq \mathcal{D}$.
Since $\sigma(\mathcal{A}) = \mathcal{E}$, this means $\mu_1 = \mu_2$ on $\mathcal{E}$.
[/step]
[step:Reduce the $\sigma$-finite case to the finite case via restricted measures]
For the general case, let $(E_n)$ be the exhausting sequence from the hypothesis.
For each $n$, define the restricted measures $\mu_1^{(n)}(A) = \mu_1(A \cap E_n)$ and $\mu_2^{(n)}(A) = \mu_2(A \cap E_n)$ for $A \in \mathcal{E}$.
These are finite measures on $(E, \mathcal{E})$ satisfying $\mu_1^{(n)}(E) = \mu_1(E_n) = \mu_2(E_n) = \mu_2^{(n)}(E) < \infty$.
Moreover, for $A \in \mathcal{A}$, $\mu_1^{(n)}(A) = \mu_1(A \cap E_n) = \mu_2(A \cap E_n) = \mu_2^{(n)}(A)$, where the middle equality holds because $A \cap E_n \in \mathcal{A}$ (since $\mathcal{A}$ is a $\pi$-system and $E_n \in \mathcal{A}$).
By the finite case, $\mu_1^{(n)} = \mu_2^{(n)}$ on $\mathcal{E}$.
For any $A \in \mathcal{E}$, the sets $A \cap E_n$ increase to $A$, so by continuity of measure from below,
\begin{align*}
\mu_1(A) = \lim_n \mu_1(A \cap E_n) = \lim_n \mu_2(A \cap E_n) = \mu_2(A).
\end{align*}
[/step]