diff --git a/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php b/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php
index 8821930..d12522a 100644
--- a/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php
+++ b/core/lib/Drupal/Core/Render/MainContent/HtmlRenderer.php
@@ -157,12 +157,10 @@ public function renderResponse(array $main_content, Request $request, RouteMatch
     // entire render cache, regardless of the cache bin.
     $cache_contexts = [];
     $cache_tags = ['rendered'];
-    $cache_max_age = Cache::PERMANENT;
     foreach (['page_top', 'page', 'page_bottom'] as $region) {
       if (isset($html[$region])) {
         $cache_contexts = Cache::mergeContexts($cache_contexts, $html[$region]['#cache']['contexts']);
         $cache_tags = Cache::mergeTags($cache_tags, $html[$region]['#cache']['tags']);
-        $cache_max_age = Cache::mergeMaxAges($cache_max_age, $html[$region]['#cache']['max-age']);
       }
     }
 
@@ -174,11 +172,6 @@ public function renderResponse(array $main_content, Request $request, RouteMatch
       'X-Drupal-Cache-Contexts' => implode(' ', $this->cacheContexts->optimizeTokens($cache_contexts)),
       'X-Generator' => 'Drupal ' . $version . ' (https://www.drupal.org)'
     ]);
-    // If an explicit non-infinite max-age is specified by a part of the page,
-    // respect that by applying it to the response's headers.
-    if ($cache_max_age !== Cache::PERMANENT) {
-      $response->setMaxAge($cache_max_age);
-    }
     return $response;
   }
 
diff --git a/core/modules/system/src/Tests/Bootstrap/PageCacheTest.php b/core/modules/system/src/Tests/Bootstrap/PageCacheTest.php
index 610c9b1..4256c16 100644
--- a/core/modules/system/src/Tests/Bootstrap/PageCacheTest.php
+++ b/core/modules/system/src/Tests/Bootstrap/PageCacheTest.php
@@ -236,6 +236,12 @@ function testPageCache() {
     $this->assertEqual($this->drupalGetHeader('Cache-Control'), 'must-revalidate, no-cache, post-check=0, pre-check=0, private', 'Cache-Control header was sent.');
     $this->assertEqual($this->drupalGetHeader('Expires'), 'Sun, 19 Nov 1978 05:00:00 GMT', 'Expires header was sent.');
     $this->assertEqual($this->drupalGetHeader('Foo'), 'bar', 'Custom header was sent.');
+
+    // Until bubbling of max-age up to the response is supported, verify that
+    // a custom #cache max-age set on an element does not affect page max-age.
+    $this->drupalLogout();
+    $this->drupalGet('system-test/cache_maxage_page');
+    $this->assertEqual($this->drupalGetHeader('Cache-Control'), 'max-age=300, public');
   }
 
   /**
diff --git a/core/modules/system/tests/modules/system_test/src/Controller/SystemTestController.php b/core/modules/system/tests/modules/system_test/src/Controller/SystemTestController.php
index 5738087..87d813d 100644
--- a/core/modules/system/tests/modules/system_test/src/Controller/SystemTestController.php
+++ b/core/modules/system/tests/modules/system_test/src/Controller/SystemTestController.php
@@ -205,6 +205,19 @@ public function system_test_cache_tags_page() {
   }
 
   /**
+   * Set cache max-age on the returned render array.
+   */
+  public function system_test_cache_maxage_page() {
+    $build['main'] = array(
+      '#cache' => array('max-age' => 90),
+      'message' => array(
+        '#markup' => 'Cache max-age page example',
+      ),
+    );
+    return $build;
+  }
+
+  /**
    * Sets a cache tag on an element to help test #pre_render and cache tags.
    */
   public static function preRenderCacheTags($elements) {
diff --git a/core/modules/system/tests/modules/system_test/system_test.routing.yml b/core/modules/system/tests/modules/system_test/system_test.routing.yml
index 0ceda63..ecb9921 100644
--- a/core/modules/system/tests/modules/system_test/system_test.routing.yml
+++ b/core/modules/system/tests/modules/system_test/system_test.routing.yml
@@ -66,6 +66,13 @@ system_test.cache_tags_page:
   requirements:
     _access: 'TRUE'
 
+system_test.cache_maxage_page:
+  path: '/system-test/cache_maxage_page'
+  defaults:
+    _controller: '\Drupal\system_test\Controller\SystemTestController::system_test_cache_maxage_page'
+  requirements:
+    _access: 'TRUE'
+
 system_test.authorize_init:
   path: '/system-test/authorize-init/{page_title}'
   defaults:
