diff --git a/django/db/models/query.py b/django/db/models/query.py
index 82074d700b..ace55a5da2 100644
--- a/django/db/models/query.py
+++ b/django/db/models/query.py
@@ -1421,11 +1421,12 @@ def prefetch_related_objects(model_instances, *related_lookups):
                 if not hasattr(obj, '_prefetched_objects_cache'):
                     try:
                         obj._prefetched_objects_cache = {}
-                    except AttributeError:
-                        # Must be in a QuerySet subclass that is not returning
-                        # Model instances, either in Django or 3rd
-                        # party. prefetch_related() doesn't make sense, so quit
-                        # now.
+                    except (AttributeError, TypeError):
+                        # Must be an immutable object from
+                        # values_list(flat=True), for example (TypeError) or
+                        # a QuerySet subclass that isn't returning Model
+                        # instances (AttributeError), either in Django or a 3rd
+                        # party. prefetch_related() doesn't make sense, so quit.
                         good_objects = False
                         break
             if not good_objects:
diff --git a/tests/prefetch_related/test_uuid.py b/tests/prefetch_related/test_uuid.py
index 8d885e1057..08930fc5f4 100644
--- a/tests/prefetch_related/test_uuid.py
+++ b/tests/prefetch_related/test_uuid.py
@@ -44,6 +44,17 @@ class UUIDPrefetchRelated(TestCase):
         with self.assertNumQueries(0):
             self.assertEqual(2, len(flea.pets_visited.all()))
 
+    def test_prefetch_related_from_uuid_model_to_uuid_model_with_values_flat(self):
+        pet = Pet.objects.create(name='Fifi')
+        pet.people.add(
+            Person.objects.create(name='Ellen'),
+            Person.objects.create(name='George'),
+        )
+        self.assertSequenceEqual(
+            Pet.objects.prefetch_related('fleas_hosted').values_list('id', flat=True),
+            [pet.id]
+        )
+
 
 class UUIDPrefetchRelatedLookups(TestCase):