Let $x_1<x_2\in \left( a,b\right)$.
First let's prove under the assumption that $f^\prime > 0$ on $\left( a,b \right)$.
Hint 1
Lagrange's mean value theorem tells us there is an $x\in \left( x_1, x_2 \right)$ such that $$f^{\prime}\left(x\right)=\frac{f\left(x_{2}\right)-f\left(x_{1}\right)}{x_{2}-x_{1}}$$
Hint 2
$f^{\prime}\left(x\right)>0$ so we have $f\left(x_{2}\right)-f\left(x_{1}\right)>0$
So $f$ is strictly monotonic increasing on $\left( a,b \right)$.
Let's now weaken our assumption to the original one presented. Examining the cases where $x_1 < c < x_2$ and $\left(x_{1}<x_{2}\leq c\right)\vee\left(c\leq x_{1}<x_{2}\right)$ seperately sounds like a good idea, and we should be able to use the above result to prove them quite easily!
Can you see how to proceed from here?
As for a finite number of critical points: I'd try induction on the number of critical points.