We just need to establish that $f$ is injective on all of $\Bbb{R}$. From there, we can establish that $f$ is continuous.
Let us suppose that $f(a) = f(b)$ (obviously at least one of $a$ and $b$ must be rational, but this is not important!). Because $(a, b)$ contains at least two (or indeed, uncountably many) irrational points, there must be some $c \in (a, b)$ such that $f(c) \neq f(a) = f(b)$. So, for every $y$ strictly between $f(c)$ and $f(a) = f(b)$, since $f$ is Darboux, there must exist some $p_y \in (a, c)$ and $q_y \in (c, b)$ such that $f(p_y) = f(q_y) = y$.
Since $f|_{\Bbb{R} \setminus \Bbb{Q}}$ is injective, we know that
$$(p_y, q_y) \in (\Bbb{Q} \times \Bbb{R}) \cup (\Bbb{R} \times \Bbb{Q}).$$
We can think of the above as the countable union of horizontal and vertical lines. Because there are uncountably many $y$ strictly between $f(c)$ and $f(a) = f(b)$, and our map $y \mapsto (p_y, q_y)$ is necessarily injective, we know, by pigeonhole principle, that there must exist distinct $y_1, y_2$ such that $(p_{y_1}, q_{y_1})$ and $(p_{y_2}, q_{y_2})$ lie on the same line, i.e. they lie on $\{r\} \times \Bbb{R}$ or $\Bbb{R} \times \{r\}$, for some fixed rational $r$.
In the former case, $f(p_{y_1}) = f(p_{y_2})$. In the latter case, $f(q_{y_1}) = f(q_{y_2})$. In either case, we get $y_1 = y_2$, which contradicts $y_1$ and $y_2$ being distinct. Thus, $f$ is indeed injective, and hence continuous.