diff --git a/packages/block-editor/src/store/actions.js b/packages/block-editor/src/store/actions.js
index f291fc7d67b93..fb0611c68bf9a 100644
--- a/packages/block-editor/src/store/actions.js
+++ b/packages/block-editor/src/store/actions.js
@@ -1440,7 +1440,17 @@ export const setNavigationMode = ( isNavigationMode = true ) => ( {
*
* @param {string} mode Editor mode
*/
-export const __unstableSetEditorMode = ( mode ) => ( { dispatch } ) => {
+export const __unstableSetEditorMode = ( mode ) => ( { dispatch, select } ) => {
+ // When switching to exploded mode, we need to select to parent block
+ if ( mode === 'exploded' ) {
+ const firstSelectedClientId = select.getBlockSelectionStart();
+ if ( firstSelectedClientId ) {
+ dispatch.selectBlock(
+ select.getBlockHierarchyRootClientId( firstSelectedClientId )
+ );
+ }
+ }
+
dispatch( { type: 'SET_EDITOR_MODE', mode } );
if ( mode === 'navigation' ) {
diff --git a/packages/edit-site/src/components/header/index.js b/packages/edit-site/src/components/header/index.js
index 791ab100ede39..76300877c918e 100644
--- a/packages/edit-site/src/components/header/index.js
+++ b/packages/edit-site/src/components/header/index.js
@@ -142,7 +142,10 @@ export default function Header( {