Let's assume $f(a)<0$ and $f(b)>0$. IMVT claims that there's $c\in(a,b)$ such that $f(c)=0$.
The Proof:
Consider $$A = \{ a\le x\le b : f(x) < 0 \}$$
That's a non-empty set and therefore, by the completeness axiom has a supremum: $c = \sup A$. By the supremum properties, there's $x_n \in A$ such that $x_n\to c$, and therefore $0 > f(x_n)\to f(c)$. By limit theorem: $f(c)\le 0$.
Notice that $c<b$ since $f(b) > 0$ by definition.
We'll argue by contradiction that $f(c) < 0$. Lets define $\varepsilon = \left|f(c)\right|/2$ and by continuity: There's $\delta > 0$ such that $\left|x-c\right| < \delta \implies \left|f(x)-f(c)\right| < \varepsilon$.
In particular, $b > c+\delta/2$. For $x=c+\delta/2$ we have: $f(x) < f(c) + \varepsilon < f(c) /2 < 0$. And so, $x\in A$ but that's a contradiction to $c=\sup A$. Therefore, $f(c)=0$.
My (Small but important) Question: Why is it that $b > c+\delta/2$?
Thanks.
First, your claim that $c<b$ is simply because $c \in A$, and not because $f(b)>0$. (There may be points $x$ such that $f(x) > 0$ and $x < c$.)
Answering your question: The reason why $b>c+\delta/2$ is because otherwise, if $c<b \le c+\delta/2$, then $|b-c|<\delta$, which implies $|f(b)-f(c)|<\varepsilon=|f(c)|/2$. This implies $f(b) < 0$, since $$\left\{y : |y-f(c)|<\varepsilon=\frac{|f(c)|}{2}\right\} = \left(-3\frac{|f(c)|}{2},-\frac{|f(c)|}{2}\right) \subset (-\infty,0).$$
In my opinion, it really helps to draw pictures of these arguments!