Let $S$ be any countable subset of $\mathbb R$.
Then $S \cup \mathbb Q$ is a countable dense subset of $\mathbb R$. I will define a homeomorphism $f$ of $\mathbb R$ to itself that takes $S \cup \mathbb Q$ onto $\mathbb Q$.
Let $\{x_n\}_{n = 1}^\infty$ be an enumeration of $S \cup \mathbb Q$, and $\{y_n\}_{n =1}^\infty$ an enumeration of $\mathbb Q$. Define $f$ on $S \cup \mathbb Q$ inductively as follows.
Suppose $f(x_m)$ has been defined for all $m < n$. The numbers $x_m$ for $m < n$ partition $\mathbb R \backslash \{x_m: m < n\}$ into $n$ open intervals, and similarly $f(x_m)$ for $m < n$ partition $\mathbb R \backslash \{f(x_m): m < n\}$. If $x_n$ is in the $j$'th interval of $\mathbb R \backslash \{x_m: m < n\}$ (counting from left to right), let $f(x_n)$ be the first $y_k$ that is in the $j$'th interval of $\mathbb R \backslash \{f(x_m): m < n\}$.
By construction, $f$ is increasing, i.e. if $x_i < x_j$ then $f(x_i) < f(x_j)$. Moreover, it is onto:
if $y_k$ hasn't yet been assigned as a value of $f$ when all $y_j$ for $j < k$ have been, say once $f(x_m)$ have been assigned for $m < n$, $y_k$ is in one of the intervals of $\mathbb R \backslash \{f(x_m): m < n\}$, and it will be assigned as $f(x_k)$ for the first $x_k$ in the corresponding interval of $\mathbb R \backslash \{x_m: m < n\}$. Then $f$ has a unique extension to a continuous increasing function from $\mathbb R$ onto itself.