Index: src/wp-admin/css/customize-controls.css
===================================================================
--- src/wp-admin/css/customize-controls.css	(revision 29471)
+++ src/wp-admin/css/customize-controls.css	(working copy)
@@ -132,7 +132,7 @@
 }
 
 #customize-theme-controls .control-section:last-of-type.open,
-#customize-theme-controls .control-section:last-of-type .accordion-section-title {
+#customize-theme-controls .control-section:last-of-type > .accordion-section-title {
 	border-bottom-color: #ddd;
 }
 
Index: src/wp-admin/customize.php
===================================================================
--- src/wp-admin/customize.php	(revision 29471)
+++ src/wp-admin/customize.php	(working copy)
@@ -161,12 +161,9 @@
 
 			<div id="customize-theme-controls"><ul>
 				<?php
-				foreach ( $wp_customize->panels() as $panel ) {
-					$panel->maybe_render();
+				foreach ( $wp_customize->containers() as $container ) {
+					$container->maybe_render();
 				}
-				foreach ( $wp_customize->sections() as $section ) {
-					$section->maybe_render();
-				}
 				?>
 			</ul></div>
 		</div>
Index: src/wp-includes/class-wp-customize-manager.php
===================================================================
--- src/wp-includes/class-wp-customize-manager.php	(revision 29471)
+++ src/wp-includes/class-wp-customize-manager.php	(working copy)
@@ -43,10 +43,11 @@
 	 */
 	public $widgets;
 
-	protected $settings = array();
-	protected $panels   = array();
-	protected $sections = array();
-	protected $controls = array();
+	protected $settings   = array();
+	protected $containers = array();
+	protected $panels     = array();
+	protected $sections   = array();
+	protected $controls   = array();
 
 	protected $nonce_tick;
 
@@ -305,6 +306,17 @@
 	}
 
 	/**
+	 * Get the registered containers.
+	 *
+	 * @since 4.0.0
+	 *
+	 * @return array
+	 */
+	public function containers() {
+		return $this->containers;
+	}
+
+	/**
 	 * Get the registered sections.
 	 *
 	 * @since 3.4.0
@@ -890,6 +902,10 @@
 			$panels[] = $panel;
 		}
 		$this->panels = $panels;
+
+		// Sort panels and top-level sections together.
+		$this->containers = array_merge( $this->panels, $this->sections );
+		uasort( $this->containers, array( $this, '_cmp_priority' ) );
 	}
 
 	/**
Index: src/wp-includes/class-wp-customize-widgets.php
===================================================================
--- src/wp-includes/class-wp-customize-widgets.php	(revision 29471)
+++ src/wp-includes/class-wp-customize-widgets.php	(working copy)
@@ -434,8 +434,9 @@
 		}
 
 		$this->manager->add_panel( 'widgets', array(
-			'title' => __( 'Widgets' ),
+			'title'       => __( 'Widgets' ),
 			'description' => __( 'Widgets are independent sections of content that can be placed into widgetized areas provided by your theme (commonly called sidebars).' ),
+			'priority'    => 110,
 		) );
 
 		foreach ( $sidebars_widgets as $sidebar_id => $sidebar_widget_ids ) {
