diff --git a/typo3/sysext/backend/Classes/Template/ModuleTemplate.php b/typo3/sysext/backend/Classes/Template/ModuleTemplate.php
index bcb4d1281eaabdd75b22fa20f058ad9191e52055..396e0b554eaa6ae0d5b93ad1178479c853944cb0 100644
--- a/typo3/sysext/backend/Classes/Template/ModuleTemplate.php
+++ b/typo3/sysext/backend/Classes/Template/ModuleTemplate.php
@@ -19,6 +19,8 @@ use TYPO3\CMS\Backend\Utility\BackendUtility;
 use TYPO3\CMS\Core\Authentication\BackendUserAuthentication;
 use TYPO3\CMS\Core\Imaging\Icon;
 use TYPO3\CMS\Core\Imaging\IconFactory;
+use TYPO3\CMS\Core\Messaging\AbstractMessage;
+use TYPO3\CMS\Core\Messaging\FlashMessageService;
 use TYPO3\CMS\Core\Page\PageRenderer;
 use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
@@ -162,6 +164,13 @@ class ModuleTemplate
      */
     protected $title = '';
 
+    /**
+     * Flash message queue
+     *
+     * @var \TYPO3\CMS\Core\Messaging\FlashMessageQueue
+     */
+    protected $flashMessageQueue;
+
     /**
      * Gets the standalone view.
      *
@@ -322,7 +331,7 @@ class ModuleTemplate
 
         $renderedPage = $this->pageRenderer->render(PageRenderer::PART_HEADER);
         $renderedPage .= $this->view->render();
-        $renderedPage .= $this->pageRenderer->addJsFooterInlineCode('updateSignals', BackendUtility::getUpdateSignalCode());
+        $this->pageRenderer->addJsFooterInlineCode('updateSignals', BackendUtility::getUpdateSignalCode());
         $renderedPage .= $this->pageRenderer->render(PageRenderer::PART_FOOTER);
 
         return $renderedPage;
@@ -802,4 +811,43 @@ class ModuleTemplate
 ';
         return $this->sectionEnd() . $str;
     }
+
+    /**
+     * Creates a Message object and adds it to the FlashMessageQueue.
+     *
+     * @param string $messageBody The message
+     * @param string $messageTitle Optional message title
+     * @param int $severity Optional severity, must be one of \TYPO3\CMS\Core\Messaging\FlashMessage constants
+     * @param bool $storeInSession Optional, defines whether the message should be stored in the session (default)
+     * @return void
+     * @throws \InvalidArgumentException if the message body is no string
+     */
+    public function addFlashMessage($messageBody, $messageTitle = '', $severity = AbstractMessage::OK, $storeInSession = true)
+    {
+        if (!is_string($messageBody)) {
+            throw new \InvalidArgumentException('The message body must be of type string, "' . gettype($messageBody) . '" given.', 1446483133);
+        }
+        /* @var \TYPO3\CMS\Core\Messaging\FlashMessage $flashMessage */
+        $flashMessage = GeneralUtility::makeInstance(
+            \TYPO3\CMS\Core\Messaging\FlashMessage::class,
+            $messageBody,
+            $messageTitle,
+            $severity,
+            $storeInSession
+        );
+        $this->getFlashMessageQueue()->enqueue($flashMessage);
+    }
+
+    /**
+     * @return \TYPO3\CMS\Core\Messaging\FlashMessageQueue
+     */
+    protected function getFlashMessageQueue()
+    {
+        if (!isset($this->flashMessageQueue)) {
+            /** @var FlashMessageService $service */
+            $service = GeneralUtility::makeInstance(FlashMessageService::class);
+            $this->flashMessageQueue = $service->getMessageQueueByIdentifier('module.template.flashmessages');
+        }
+        return $this->flashMessageQueue;
+    }
 }
diff --git a/typo3/sysext/backend/Resources/Private/Templates/Module.html b/typo3/sysext/backend/Resources/Private/Templates/Module.html
index 022e6de6af9233eef47b6950bcd1bd80ad09ffff..60b70259d289d63f1a89a35d22e96f014489f61a 100644
--- a/typo3/sysext/backend/Resources/Private/Templates/Module.html
+++ b/typo3/sysext/backend/Resources/Private/Templates/Module.html
@@ -8,6 +8,8 @@
 		<f:render partial="DocHeader" arguments="{docHeader:docHeader}" />
 	</f:if>
 	<div class="module-body t3js-module-body">
+		<f:flashMessages queueIdentifier="module.template.flashmessages" />
+
 		<f:format.raw>{content}</f:format.raw>
 	</div>
 	<f:if condition="{formTag}">
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Feature-71251-AddFlashMessageSupportInModuleTemplateAPI.rst b/typo3/sysext/core/Documentation/Changelog/master/Feature-71251-AddFlashMessageSupportInModuleTemplateAPI.rst
new file mode 100644
index 0000000000000000000000000000000000000000..acf56a6ba60efefe965d7ecac42836df7678e9ba
--- /dev/null
+++ b/typo3/sysext/core/Documentation/Changelog/master/Feature-71251-AddFlashMessageSupportInModuleTemplateAPI.rst
@@ -0,0 +1,24 @@
+================================================================
+Feature: #71251 - Add FlashMessage support in ModuleTemplate API
+================================================================
+
+Description
+===========
+
+Flash messages have different queues, depending on in which context they are
+enqueued. The FlashMessageService defaults the queue to ``core.template.flashMessages``,
+Extbase defaults the queue to ``extbase.flashmessages .$randomPluginQueue``.
+
+Support for flash messages in ModuleTemplate has been added to enqueue flash messages automatically
+in the correct queue identifier.
+
+
+Impact
+======
+
+Flash messages can be enqueued by the following code:
+
+
+.. code-block:: php
+
+	$this->moduleTemplate->addFlashMessage('I am a message body', 'Title', \TYPO3\CMS\Core\Messaging\AbstractMessage::OK, true);
\ No newline at end of file