This answer shows that every open set $U \subseteq \mathbb{R}^n$ is a countable union of open rectangles $\langle a_1, b_1\rangle \times\cdots\times \langle a_n, b_n\rangle$. Each interval $\langle a_k, b_k\rangle \in \mathcal{B}(\mathbb{R})$ so the open rectangles are in $\mathcal{B}(\mathbb{R}) \times \cdots \times \mathcal{B}(\mathbb{R})$.
$$U = \bigcup_{i\in\mathbb{N}} \underbrace{\langle a_1^i, b_1^i\rangle \times\cdots\times \langle a_n^i, b_n^i\rangle}_{\mathcal{B}(\mathbb{R}) \times \cdots \times \mathcal{B}(\mathbb{R})} \in \mathcal{B}(\mathbb{R}) \times \cdots \times \mathcal{B}(\mathbb{R})$$
Hence $$\mathcal{B}(\mathbb{R}^n) = \sigma(\{U \subseteq \mathbb{R}^n : U \text{ open}\}) \subseteq \mathcal{B}(\mathbb{R}) \times \cdots \times \mathcal{B}(\mathbb{R})$$
For the converse inclusion, define $$\mathcal{A}_i = \{E \subseteq \mathbb{R} : \underbrace{\mathbb{R}^{i-1} \times E \times \mathbb{R}^{n-i}}_{\subseteq\mathbb{R}^n} \in \mathcal{B}(\mathbb{R}^n)\}$$
Check that $\mathcal{A}_i$ is a $\sigma$-algebra and notice that $\mathcal{A}_i$ clearly contains all open sets in $\mathbb{R}$. It follows that $\mathcal{B}(\mathbb{R}) \subseteq \mathcal{A}_i$.
Now, for $B_1, \ldots, B_n \in \mathcal{B}(\mathbb{R})$ we have $B_i \in \mathcal{A}_i$ so
$$B_1 \times \cdots \times B_n = \underbrace{(B_1 \times \mathbb{R}^{n-1})}_{\in \mathcal{B}(\mathbb{R}^n)} \cap \underbrace{(\mathbb{R} \times B_2 \cap \mathbb{R}^{n-2})}_{\in \mathcal{B}(\mathbb{R}^n)} \cap \cdots \cap \underbrace{(\mathbb{R}^{n-1} \times B_n)}_{\in \mathcal{B}(\mathbb{R}^n)} \in \mathcal{B}(\mathbb{R}^n)$$
We conclude $\mathcal{B}(\mathbb{R}) \times \cdots \times \mathcal{B}(\mathbb{R}) \subseteq \mathcal{B}(\mathbb{R}^n)$.