A pedestrian way is simply solving the equation by the method of successive approximations:
$$
i\partial_t U(t,t_0)=HU(t,t_0)\Leftrightarrow
U(t,t_0)=-i\int_{t_0}^tdt_1 H(t_1)U(\tau,t_0),\\
U^{(0)}(t,t_0)=1,\\
U^{(1)}(t,t_0)=-i\int_{t_0}^tdt_1 H(t_1)U^{(0)}(\tau,t_0)=-i\int_{t_0}^tdt_1 H(t_1),\\
U^{(2)}(t,t_0)=-i\int_{t_0}^tdt_2 H(t_2)U^{(1)}(t_2,t_0)=
(-i)^2\int_{t_0}^td t_2\int_{t_0}^{t_2}d t_1 H(t_2)H(t_1),\\
...,\\
U^{(n)}(t,t_0)=-i\int_{t_0}^tdt_n H(t_n)U^{(n-1)}(t_n,t_0)=\\
(-i)^n\int_{t_0}^tdt_n \int_{t_0}^{t_n}d t_{n-1}...\int_{t_0}^{t_3}d t_2 \int_{t_0}^{t_2}d t_1 H(t_n)H(t_{n-1})...H(t_2)H(t_1),\\
U(t,t_0)=\sum_{n=0}^{\infty}U^{(n)}(t,t_0)
$$
Now we can transform every term, e.g.,
$$
U^{(2)}(t,t_0)=
(-i)^2\int_{t_0}^td t_2\int_{t_0}^{t_2}d t_1 H(t_2)H(t_1)=\\
(-i)^2\int_{t_0}^td t_1\int_{t_1}^{t}d t_2 H(t_2)H(t_1)=
(-i)^2\int_{t_0}^td t_2\int_{t_2}^{t}d t_1 H(t_1)H(t_2)=\\
\frac{(-i)^2}{2}\int_{t_0}^td t_2\int_{t_0}^{t_2}d t_1 H(t_2)H(t_1) + \frac{(-i)^2}{2}\int_{t_0}^td t_2\int_{t_2}^{t}d t_1 H(t_1)H(t_2)=\\
\frac{(-i)^2}{2}\int_{t_0}^td t_2\int_{t_0}^{t_2}d t_1 T\left[H(t_2)H(t_1)\right] + \frac{(-i)^2}{2}\int_{t_0}^td t_2\int_{t_2}^{t}d t_1 T\left[H(t_2)H(t_1)\right]=
\\
\frac{(-i)^2}{2}\int_{t_0}^td t_2\int_{t_0}^{t}d t_1 T\left[H(t_2)H(t_1)\right]$$
(I leave proving it for an arbitrary order as a homework exercise... surely a tedious one, but not scary to a physicist.)
The full evolution operator then collapses to the exponent:
$$
U^{(n)}(t,t_0)=
\frac{(-i)^n}{n!}\int_{t_0}^tdt_n \int_{t_0}^td t_{n-1}...\int_{t_0}^td t_2 \int_{t_0}^ttd t_1 T\left[H(t_n)H(t_{n-1})...H(t_2)H(t_1)\right],\\
U(t,t_0)=\sum_{n=0}^{\infty}U^{(n)}(t,t_0)=T\exp\left[-i\int_{t_0}^t dt_1 H(t_1)\right]
$$