diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index 7fbfd99661aa2b09271148ec3a86607687fc112a..ac44ab5deab6193a25de57a03779013c442dc96d 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -177,6 +177,7 @@ function system_theme() {
     ),
     'system_config_form' => array(
       'render element' => 'form',
+      'template' => 'system-config-form',
     ),
     'confirm_form' => array(
       'render element' => 'form',
@@ -1706,22 +1707,6 @@ function system_block_view_system_help_block_alter(array &$build, BlockPluginInt
   unset($build['#contextual_links']);
 }
 
-/**
- * Returns HTML for a system settings form.
- *
- * By default this does not alter the appearance of a form at all,
- * but is provided as a convenience for themers.
- *
- * @param $variables
- *   An associative array containing:
- *   - form: A render element representing the form.
- *
- * @ingroup themeable
- */
-function theme_system_config_form($variables) {
-  return drupal_render_children($variables['form']);
-}
-
 /**
  * Implements hook_path_update().
  */
diff --git a/core/modules/system/templates/system-config-form.html.twig b/core/modules/system/templates/system-config-form.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..51e6fc7d886438c831750577afc307c0e3286da3
--- /dev/null
+++ b/core/modules/system/templates/system-config-form.html.twig
@@ -0,0 +1,17 @@
+{#
+/**
+ * @file
+ * Default theme implementation for a system settings form.
+ *
+ * This template will be used when a system config form specifies 'config_form'
+ * as its #theme callback.  Otherwise, by default, system config forms will be
+ * themed by theme_form(). This does not alter the appearance of a form at all,
+ * but is provided as a convenience for themers.
+ *
+ * Available variables:
+ * - form: The confirm form.
+ *
+ * @ingroup themeable
+ */
+#}
+{{ form }}