diff --git a/packages/compiler-sfc/__tests__/parse.spec.ts b/packages/compiler-sfc/__tests__/parse.spec.ts
index 95119fab..2c640853 100644
--- a/packages/compiler-sfc/__tests__/parse.spec.ts
+++ b/packages/compiler-sfc/__tests__/parse.spec.ts
@@ -177,12 +177,14 @@ h1 { color: red }
         .slotted
     ).toBe(false)
     expect(
-      parse(`hi`)
-        .descriptor.slotted
+      parse(
+        `hi`
+      ).descriptor.slotted
     ).toBe(true)
     expect(
-      parse(`hi`)
-        .descriptor.slotted
+      parse(
+        `hi`
+      ).descriptor.slotted
     ).toBe(true)
   })
 
diff --git a/packages/compiler-sfc/src/parse.ts b/packages/compiler-sfc/src/parse.ts
index 98359491..df7059c1 100644
--- a/packages/compiler-sfc/src/parse.ts
+++ b/packages/compiler-sfc/src/parse.ts
@@ -237,7 +237,9 @@ export function parse(
 
   // check if the SFC uses :slotted
   const slottedRE = /(?:::v-|:)slotted\(/
-  descriptor.slotted = descriptor.styles.some(s => slottedRE.test(s.content))
+  descriptor.slotted = descriptor.styles.some(
+    s => s.scoped && slottedRE.test(s.content)
+  )
 
   const result = {
     descriptor,