[proofplan]
We prove the equality by proving both inclusions. First, every point whose distance from $x_0$ is at most $r$ lies in the closure of the open ball: interior points are immediate, while boundary points are approached along the line segment from $x_0$ to the point. Conversely, if a point has distance strictly larger than $r$ from $x_0$, the positive gap between that distance and $r$ gives an open neighbourhood disjoint from $B(x_0,r)$. These two inclusions identify the closure of the open ball with the closed ball.
[/proofplan]
[step:Record the two ball notations and the closure criterion]
Throughout the proof, the Euclidean open ball and closed ball centred at $x_0$ with radius $r$ are
\begin{align*}
B(x_0,r) = \{y \in \mathbb{R}^n : |y - x_0| < r\}
\end{align*}
and
\begin{align*}
\overline{B}(x_0,r) = \{y \in \mathbb{R}^n : |y - x_0| \leq r\}.
\end{align*}
A point $x \in \mathbb{R}^n$ belongs to $\overline{B(x_0,r)}$ exactly when every Euclidean open ball $B(x,\rho)$ with $\rho > 0$ intersects $B(x_0,r)$.
[/step]
[step:Show every point of the closed ball lies in the closure of the open ball]
Let $x \in \overline{B}(x_0,r)$, so $|x - x_0| \leq r$. We prove that every neighbourhood $B(x,\rho)$ with $\rho > 0$ intersects $B(x_0,r)$.
If $|x - x_0| < r$, then $x \in B(x_0,r)$ and also $x \in B(x,\rho)$, so $B(x,\rho) \cap B(x_0,r) \neq \varnothing$.
It remains to consider the boundary case $|x - x_0| = r$. Since $r > 0$, this implies $x \neq x_0$. Let $\rho > 0$ be arbitrary. Since $r > 0$, the number $\max\{0,1-\rho/r\}$ is strictly less than $1$. Choose a number $t \in (\max\{0,1-\rho/r\},1)$. Then $0 < t < 1$ and
\begin{align*}
(1-t)r < \rho.
\end{align*}
Define the point $y_t \in \mathbb{R}^n$ by
\begin{align*}
y_t = x_0 + t(x - x_0).
\end{align*}
Then
\begin{align*}
|y_t - x_0| = |t(x - x_0)| = t|x - x_0| = tr < r,
\end{align*}
so $y_t \in B(x_0,r)$. Also,
\begin{align*}
|y_t - x| = |x_0 + t(x - x_0) - x| = |(1-t)(x_0 - x)| = (1-t)r < \rho,
\end{align*}
so $y_t \in B(x,\rho)$. Therefore $B(x,\rho) \cap B(x_0,r) \neq \varnothing$. Since $\rho > 0$ was arbitrary, $x \in \overline{B(x_0,r)}$.
[guided]
Let $x \in \overline{B}(x_0,r)$, meaning $|x - x_0| \leq r$. To prove $x \in \overline{B(x_0,r)}$, we must check the defining closure condition: for every radius $\rho > 0$, the open neighbourhood $B(x,\rho)$ must contain at least one point of the open ball $B(x_0,r)$.
There are two cases. If $|x - x_0| < r$, then $x$ itself is already in the open ball $B(x_0,r)$. Since every open ball $B(x,\rho)$ contains its centre $x$, we have
\begin{align*}
x \in B(x,\rho) \cap B(x_0,r).
\end{align*}
Thus the required intersection is nonempty.
Now suppose $|x - x_0| = r$. This is the boundary case, where $x$ may not itself lie in $B(x_0,r)$ because the open ball requires strict inequality. The idea is to move slightly from $x$ back toward the centre $x_0$. Since $r > 0$ and $|x - x_0| = r$, we have $x \neq x_0$. Let $\rho > 0$ be arbitrary. Because $r > 0$, the number $\max\{0,1-\rho/r\}$ is strictly less than $1$, so we may choose
\begin{align*}
t \in (\max\{0,1-\rho/r\},1).
\end{align*}
This choice gives $0 < t < 1$ and
\begin{align*}
(1-t)r < \rho.
\end{align*}
Define
\begin{align*}
y_t = x_0 + t(x - x_0).
\end{align*}
This point lies on the line segment from $x_0$ to $x$, strictly between the centre and the boundary point. Its distance from $x_0$ is
\begin{align*}
|y_t - x_0| = |t(x - x_0)| = t|x - x_0| = tr.
\end{align*}
Because $0 < t < 1$, we have $tr < r$, so $y_t \in B(x_0,r)$.
We also need $y_t$ to lie in the prescribed neighbourhood of $x$. Its distance from $x$ is
\begin{align*}
|y_t - x| = |x_0 + t(x - x_0) - x| = |(1-t)(x_0 - x)| = (1-t)|x_0 - x| = (1-t)r.
\end{align*}
By the choice of $t$, this is less than $\rho$, hence $y_t \in B(x,\rho)$. Therefore $y_t \in B(x,\rho) \cap B(x_0,r)$. Since $\rho > 0$ was arbitrary, every Euclidean neighbourhood of $x$ intersects $B(x_0,r)$, and hence $x \in \overline{B(x_0,r)}$.
[/guided]
[/step]
[step:Show every point outside the closed ball is outside the closure of the open ball]
Let $x \in \mathbb{R}^n$ satisfy $x \notin \overline{B}(x_0,r)$. Then $|x - x_0| > r$. Define the positive number
\begin{align*}
\varepsilon = \frac{|x - x_0| - r}{2}.
\end{align*}
We claim that $B(x,\varepsilon) \cap B(x_0,r) = \varnothing$. Suppose, for contradiction, that $y \in B(x,\varepsilon) \cap B(x_0,r)$. Then $|x-y| < \varepsilon$ and $|y-x_0| < r$. By the triangle inequality,
\begin{align*}
|x - x_0| \leq |x-y| + |y-x_0|.
\end{align*}
Using the two strict bounds gives
\begin{align*}
|x - x_0| < \varepsilon + r = \frac{|x - x_0| + r}{2}.
\end{align*}
This implies $|x - x_0| < r$, contradicting $|x - x_0| > r$. Hence $B(x,\varepsilon)$ is an open neighbourhood of $x$ disjoint from $B(x_0,r)$, so $x \notin \overline{B(x_0,r)}$.
[/step]
[step:Combine the two inclusions]
The second step proves
\begin{align*}
\overline{B}(x_0,r) \subseteq \overline{B(x_0,r)}.
\end{align*}
The third step proves that every point outside $\overline{B}(x_0,r)$ is outside $\overline{B(x_0,r)}$, which is equivalent to
\begin{align*}
\overline{B(x_0,r)} \subseteq \overline{B}(x_0,r).
\end{align*}
Therefore
\begin{align*}
\overline{B(x_0,r)} = \overline{B}(x_0,r).
\end{align*}
This is the desired equality.
[/step]