Through the Common Gateway Interface (CGI), the server accesses the Controllers' methods first, before any pages are run/accessed. The controller may return any page that the programmer deams right (or an AJAX snippet if need be). The difference with Web forms is that the page is accessed first much like early web servers serving static text files. So MVC is really serving executable code/methods, not files. MVC allows greater flexibility as to how to respond to the web browser.
ASP.NET MVC has Views which are driven by the Controller(s). The View is the user interface, a page, along with a master page. An entire website can be created using just a Controller and Views but if it will be a data-driven one then it would be good practice to use a Model. And interestingly, an entire website can be created using just Controllers! Controllers are very important and perhaps the acronym should me CMV — Controller-Model-View.
ASP.NET MVC is like the original Active Server Pages (ASP) in that it will chop-up your code into snippets of HTML along side snippets of executable code. As mentioned, this means a return to writing HTML instead of having controls do it for you. Care must be given to keeping as much executable code in the Controller and out of the View.