(Modified from the proof of Theorem 4.1 of Set Theory by Thomas Jech, which states that the reals are uncountable):
Let $c_1, c_2, c_3, \cdots$ be the rational numbers in $(a, b)$. We shall constructing an oscillating subsequence $s_n$, so $s_1 < s_3 < s_5 < \cdots < s_6 < s_4 < s_2$. We keep track of the indices $k_n$, so $s_n = c_{k_n}$. Note that here we do not require the indices to be increasing.
Let $s_1 = c_1$, so $k_1 = 1$.
Then, let $s_2 = c_{k_2}$ where $k_2$ is the minimum index such that $c_{k_2} > s_1$. (If none exists, then $\frac{c_1 + b}2$ is irrational.) So $s_1 < s_2$.
After that, let $s_3 = c_{k_3}$ where $k_3$ is the minimum index such that $s_1 < c_{k_3} < s_2$. (It exists because $\frac{s_1+s_2}2$ is rational.) So $s_1 < s_3 < s_2$.
Next, let $s_4 = c_{k_4}$ where $k_4 > k_3$ is the minimum index such that $s_3 < c_{k_4} < s_2$. (It exists for the same reason.) So $s_1 < s_3 < s_4 < s_2$.
Similarly, we let each $s_n$ be $c_{k_n}$ where $k_n$ is the minimum index such that $s_n$ has the appropriate relationship with the $s_r$ that comes before it.
Recall that we have $s_1 < s_3 < s_5 < \cdots < s_6 < s_4 < s_2$.
Then, I claim that $s_1, s_3, s_5, \cdots$ is a Cauchy sequence, so it defines a real number $s$. (If you already proved that suprema exist, then you can just take the supremum and skip this part.) Assume that it is not Cauchy for a contradiction, so there is $\varepsilon$ such that for arbitrarily large $n$ there is $m$ such that $s_{n+2m} - s_n > \varepsilon$, but that would mean that sequence would increase without bound, which contradicts the fact that $s_2$ is (constructed to be) an upper bound.
I now claim that the real number $s$ just constructed cannot be rational. First note that $a < s_1 < s < s_2 < b$, so $s \in (a, b)$. So, if $s$ were to be rational, then it would have to be $c_N$ for some $N$, so $s$ would have been chosen after at most $N$ steps (noting that the relation $s_1 < s_3 < \cdots < s_4 < s_2$ makes the indices all distinct), contradiction.