diff --git a/.azure/pipelines/components-e2e-tests.yml b/.azure/pipelines/components-e2e-tests.yml
index 734b7a2ac8e4382ab01c356d41ae15caf194865b..057a64027727cae86e01e562f2e79d18f0382bc1 100644
--- a/.azure/pipelines/components-e2e-tests.yml
+++ b/.azure/pipelines/components-e2e-tests.yml
@@ -43,17 +43,36 @@ jobs:
       displayName: NPM install
     - script: .dotnet/dotnet build ./src/Components/test/E2ETest -c $(BuildConfiguration) --no-restore
       displayName: Build
-    - script: .dotnet/dotnet test ./src/Components/test/E2ETest -c $(BuildConfiguration) --no-build --logger trx
+    - script: .dotnet/dotnet test ./src/Components/test/E2ETest -c $(BuildConfiguration) --no-build --filter 'Quarantined!=true|Quarantined=false'
+                 --logger:"trx%3BLogFileName=Microsoft.AspNetCore.Components.E2ETests.trx"
+                 --logger:"html%3BLogFileName=Microsoft.AspNetCore.Components.E2ETests.html"
+                 --results-directory $(Build.SourcesDirectory)/artifacts/TestResults/$(BuildConfiguration)/Unquarantined
       displayName: Run E2E tests
+    - script: .dotnet/dotnet test ./src/Components/test/E2ETest -c $(BuildConfiguration) --no-build --filter 'Quarantined=true' -p:RunQuarantinedTests=true
+                 --logger:"trx%3BLogFileName=Microsoft.AspNetCore.Components.E2ETests.trx"
+                 --logger:"html%3BLogFileName=Microsoft.AspNetCore.Components.E2ETests.html"
+                 --results-directory $(Build.SourcesDirectory)/artifacts/TestResults/$(BuildConfiguration)/Quarantined
+      displayName: Run Quarantined E2E tests
+      continueOnError: true
     - task: PublishTestResults@2
       displayName: Publish E2E Test Results
       inputs:
         testResultsFormat: 'VSTest'
         testResultsFiles: '*.trx'
-        searchFolder: '$(Build.SourcesDirectory)/src/Components/test/E2ETest/TestResults'
+        searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(BuildConfiguration)/Unquarantined'
         testRunTitle: ComponentsE2E-$(AgentOsName)-$(BuildConfiguration)-xunit
       condition: always()
+    - task: PublishTestResults@2
+      displayName: Publish Quarantined E2E Test Results
+      inputs:
+        testResultsFormat: 'VSTest'
+        testResultsFiles: '*.trx'
+        searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(BuildConfiguration)/Quarantined'
+        testRunTitle: Quarantine-$(AgentOsName)-$(BuildConfiguration)-xunit
+        mergeTestResults: true
+      condition: always()
+
     artifacts:
     - name: Components_E2E_Test_Logs
-      path: ./src/Components/test/E2ETest/TestResults
+      path: '$(Build.SourcesDirectory)/artifacts/TestResults/$(BuildConfiguration)'
       publishOnError: true
diff --git a/src/Components/test/E2ETest/Tests/JSRootComponentsTest.cs b/src/Components/test/E2ETest/Tests/JSRootComponentsTest.cs
index c1c1764c5c489152da6afa7cf6413cf256d16cf9..c4e4b29bfd657fa57a333edee6bf9376f6b4941c 100644
--- a/src/Components/test/E2ETest/Tests/JSRootComponentsTest.cs
+++ b/src/Components/test/E2ETest/Tests/JSRootComponentsTest.cs
@@ -36,6 +36,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.Tests
         [InlineData(false, true)]
         [InlineData(true, false)]
         [InlineData(true, true)]
+        [QuarantinedTest("https://github.com/dotnet/aspnetcore/issues/38613")]
         public void CanAddAndDisposeRootComponents(bool intoBlazorUi, bool attachShadowRoot)
         {
             var message = app.FindElement(By.Id("message"));