How does page.tpl.php come into action?
It's actually the other way around; it's the theming of the page template that invokes the theming of the html template (as strange as that might sound).

When Drupal goes to serve a normal HTML page (through drupal_deliver_html_page()), it calls drupal_render_page(). To get the basic render array for the page, that function invokes hook_element_info() with the 'page' argument.

The system_element_info() function defines that type like this:

$types['page'] = array(
  '#show_messages' =&gt; TRUE, 
  '#theme' =&gt; 'page', 
  '#theme_wrappers' =&gt; array('html'),
);


When the drupal_render_page() function eventually gets around to calling drupal_render() on the $page array (once it's been populated with the page content/blocks/etc), theme_page() is called with the $page element as it's 'render element', and the return from that call is passed to the theme wrapper (theme_html()).

It's that return value that populates the $page variable in html.tpl.php