diff --git a/core/modules/content_moderation/src/Plugin/Field/FieldWidget/ModerationStateWidget.php b/core/modules/content_moderation/src/Plugin/Field/FieldWidget/ModerationStateWidget.php
index 967dce880a..8a33c76ed8 100644
--- a/core/modules/content_moderation/src/Plugin/Field/FieldWidget/ModerationStateWidget.php
+++ b/core/modules/content_moderation/src/Plugin/Field/FieldWidget/ModerationStateWidget.php
@@ -131,6 +131,9 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
     foreach ($transitions as $transition) {
       $transition_to_state = $transition->to();
       $transition_labels[$transition_to_state->id()] = $transition_to_state->label();
+      if ($default->id() === $transition_to_state->id()) {
+        $default_value = $default->id();
+      }
     }
 
     $element += [
diff --git a/core/modules/content_moderation/tests/src/Functional/ModerationFormTest.php b/core/modules/content_moderation/tests/src/Functional/ModerationFormTest.php
index bb9e92d6ea..c31a98e194 100644
--- a/core/modules/content_moderation/tests/src/Functional/ModerationFormTest.php
+++ b/core/modules/content_moderation/tests/src/Functional/ModerationFormTest.php
@@ -107,6 +107,10 @@ public function testModerationForm() {
       'moderation_state[0][state]' => 'published',
     ], t('Save'));
 
+    // Check widget default value.
+    $this->drupalGet($edit_path);
+    $this->assertFieldByName('moderation_state[0][state]', 'published', 'Moderation state default value is not set.');
+
     // The published view should not have a moderation form, because it is the
     // live revision.
     $this->drupalGet($canonical_path);
