diff --git a/core/lib/Drupal/Core/Template/TwigNodeTrans.php b/core/lib/Drupal/Core/Template/TwigNodeTrans.php
index 21006fd1ed..8b48cde657 100644
--- a/core/lib/Drupal/Core/Template/TwigNodeTrans.php
+++ b/core/lib/Drupal/Core/Template/TwigNodeTrans.php
@@ -62,7 +62,7 @@ public function compile(\Twig_Compiler $compiler) {
     // leave as an empty array.
     $compiler->raw(', array(');
     foreach ($tokens as $token) {
-      $compiler->string($token->getAttribute('placeholder'))->raw(' => ')->subcompile($token)->raw(', ');
+      $compiler->string($token->getAttribute('placeholder'))->raw(' => $this->env->getExtension("drupal_core")->renderVar(')->subcompile($token)->raw('), ');
     }
     $compiler->raw(')');
 
diff --git a/core/modules/system/src/Tests/Theme/TwigExtensionTest.php b/core/modules/system/src/Tests/Theme/TwigExtensionTest.php
index 4be1f736c9..4e93eb9251 100644
--- a/core/modules/system/src/Tests/Theme/TwigExtensionTest.php
+++ b/core/modules/system/src/Tests/Theme/TwigExtensionTest.php
@@ -3,6 +3,7 @@
 namespace Drupal\system\Tests\Theme;
 
 use Drupal\simpletest\WebTestBase;
+use Drupal\Component\Render\FormattableMarkup;
 
 /**
  * Tests Twig extensions.
@@ -86,4 +87,14 @@ public function testsRenderZeroValue() {
     $this->assertIdentical($extension->renderVar(0.0), 0, 'TwigExtension::renderVar() renders zero correctly when provided as a double.');
   }
 
+  /**
+   * Tests output of MarkupInterface of TwigExtension->renderVar().
+   */
+  public function testRenderMarkup() {
+    /** @var \Drupal\Core\Template\TwigExtension $extension */
+    $extension = \Drupal::service('twig.extension');
+    $markup = new FormattableMarkup('<span>This is a @markup</span>', ['@markup' => 'MarkupInterface']);
+    $this->assertIdentical($extension->renderVar($markup), '<span>This is a MarkupInterface</span>', 'TwigExtension::renderVar() returns MarkupInterface correctly.');
+  }
+
 }
diff --git a/core/modules/system/src/Tests/Theme/TwigTransTest.php b/core/modules/system/src/Tests/Theme/TwigTransTest.php
index ef6fe05074..4b3be4f84b 100644
--- a/core/modules/system/src/Tests/Theme/TwigTransTest.php
+++ b/core/modules/system/src/Tests/Theme/TwigTransTest.php
@@ -116,6 +116,14 @@ public function testEmptyTwigTransTags() {
   }
 
   /**
+   * Testing trans with render array value.
+   */
+  public function testTransRenderArray() {
+    $this->drupalGet('twig-theme-test/render-array');
+    $this->assertText('This is a trans render array', '{% trans %} with render array value is working correctly.');
+  }
+
+  /**
    * Asserts Twig trans tags.
    */
   protected function assertTwigTransTags() {
diff --git a/core/modules/system/tests/modules/twig_theme_test/src/TwigThemeTestController.php b/core/modules/system/tests/modules/twig_theme_test/src/TwigThemeTestController.php
index 7408ce8f47..4e5bf448c5 100644
--- a/core/modules/system/tests/modules/twig_theme_test/src/TwigThemeTestController.php
+++ b/core/modules/system/tests/modules/twig_theme_test/src/TwigThemeTestController.php
@@ -104,4 +104,13 @@ public function renderable() {
     ];
   }
 
+  /**
+   * Controller for testing trans with render array value.
+   */
+  public function transRenderArray() {
+    return [
+      '#theme' => 'twig_theme_test_trans_render_array',
+    ];
+  }
+
 }
diff --git a/core/modules/system/tests/modules/twig_theme_test/templates/twig_theme_test.trans_render_array.html.twig b/core/modules/system/tests/modules/twig_theme_test/templates/twig_theme_test.trans_render_array.html.twig
new file mode 100644
index 0000000000..ea04c5d477
--- /dev/null
+++ b/core/modules/system/tests/modules/twig_theme_test/templates/twig_theme_test.trans_render_array.html.twig
@@ -0,0 +1,3 @@
+{% trans %}
+  This is a {{ var }}.
+{% endtrans %}
diff --git a/core/modules/system/tests/modules/twig_theme_test/twig_theme_test.module b/core/modules/system/tests/modules/twig_theme_test/twig_theme_test.module
index b3a75e5180..169f0d4c98 100644
--- a/core/modules/system/tests/modules/twig_theme_test/twig_theme_test.module
+++ b/core/modules/system/tests/modules/twig_theme_test/twig_theme_test.module
@@ -24,6 +24,16 @@ function twig_theme_test_theme($existing, $type, $theme, $path) {
     'variables' => array('var' => ''),
     'template' => 'twig_theme_test.placeholder_outside_trans',
   );
+  $items['twig_theme_test_trans_render_array'] = array(
+    'variables' => array(
+      'var' => array(
+        '#prefix' => '<strong>',
+        '#markup' => 'trans render array',
+        '#suffix' => '</strong>',
+      ),
+    ),
+    'template' => 'twig_theme_test.trans_render_array',
+  );
   $items['twig_namespace_test'] = array(
     'variables' => array(),
     'template' => 'twig_namespace_test',
diff --git a/core/modules/system/tests/modules/twig_theme_test/twig_theme_test.routing.yml b/core/modules/system/tests/modules/twig_theme_test/twig_theme_test.routing.yml
index df665c3464..8bc66848aa 100644
--- a/core/modules/system/tests/modules/twig_theme_test/twig_theme_test.routing.yml
+++ b/core/modules/system/tests/modules/twig_theme_test/twig_theme_test.routing.yml
@@ -69,3 +69,10 @@ twig_theme_test_renderable:
     _controller: '\Drupal\twig_theme_test\TwigThemeTestController::renderable'
   requirements:
     _access: 'TRUE'
+
+twig_theme_test_render_array:
+  path: '/twig-theme-test/render-array'
+  defaults:
+    _controller: '\Drupal\twig_theme_test\TwigThemeTestController::transRenderArray'
+  requirements:
+    _access: 'TRUE'
