diff --git a/core/modules/filter/filter.module b/core/modules/filter/filter.module
index c781f8a200..0e75b02721 100644
--- a/core/modules/filter/filter.module
+++ b/core/modules/filter/filter.module
@@ -731,6 +731,11 @@ function _filter_autop($text) {
       }
     }
     elseif (!$ignore) {
+      if (substr($chunk, 0, 13) === '<drupal-media') {
+        // Do not alter media embeds.
+        $output .= $chunk;
+        continue;
+      }
       // just to make things a little easier, pad the end
       $chunk = preg_replace('|\n*$|', '', $chunk) . "\n\n";
       $chunk = preg_replace('|<br />\s*<br />|', "\n\n", $chunk);
diff --git a/core/modules/media/tests/src/FunctionalJavascript/CKEditorIntegrationTest.php b/core/modules/media/tests/src/FunctionalJavascript/CKEditorIntegrationTest.php
index 1a0e7201d4..983b46d63f 100644
--- a/core/modules/media/tests/src/FunctionalJavascript/CKEditorIntegrationTest.php
+++ b/core/modules/media/tests/src/FunctionalJavascript/CKEditorIntegrationTest.php
@@ -93,6 +93,7 @@ protected function setUp() {
         'filter_align' => ['status' => TRUE],
         'filter_caption' => ['status' => TRUE],
         'media_embed' => ['status' => TRUE],
+        'filter_autop' => ['status' => TRUE],
       ],
     ])->save();
     Editor::create([
