diff --git a/homeassistant/components/withings/common.py b/homeassistant/components/withings/common.py
index b7c3cec6d9b4e89ea39581e3bc4b01e67c3cbf80..5d8d5799fc10b62e2ba184dd576f04cb8cbf839f 100644
--- a/homeassistant/components/withings/common.py
+++ b/homeassistant/components/withings/common.py
@@ -770,8 +770,13 @@ class DataManager:
 
         response = await self._hass.async_add_executor_job(self._api.measure_get_meas)
 
-        groups = query_measure_groups(
-            response, MeasureTypes.ANY, MeasureGroupAttribs.UNAMBIGUOUS
+        # Sort from oldest to newest.
+        groups = sorted(
+            query_measure_groups(
+                response, MeasureTypes.ANY, MeasureGroupAttribs.UNAMBIGUOUS
+            ),
+            key=lambda group: group.created.datetime,
+            reverse=False,
         )
 
         return {
diff --git a/tests/components/withings/test_sensor.py b/tests/components/withings/test_sensor.py
index abfc4758251161eba1e4f2a87101ecbe938f2d2f..3370c23e3d8590a33189d218a4412696b5d0e6c5 100644
--- a/tests/components/withings/test_sensor.py
+++ b/tests/components/withings/test_sensor.py
@@ -1,5 +1,4 @@
 """Tests for the Withings component."""
-import time
 from typing import Any
 from unittest.mock import patch
 
@@ -40,8 +39,8 @@ PERSON0 = new_profile_config(
             MeasureGetMeasGroup(
                 attrib=MeasureGetMeasGroupAttrib.DEVICE_ENTRY_FOR_USER,
                 category=MeasureGetMeasGroupCategory.REAL,
-                created=time.time(),
-                date=time.time(),
+                created=arrow.utcnow().shift(hours=-1),
+                date=arrow.utcnow().shift(hours=-1),
                 deviceid="DEV_ID",
                 grpid=1,
                 measures=(
@@ -87,11 +86,61 @@ PERSON0 = new_profile_config(
                     ),
                 ),
             ),
+            MeasureGetMeasGroup(
+                attrib=MeasureGetMeasGroupAttrib.DEVICE_ENTRY_FOR_USER,
+                category=MeasureGetMeasGroupCategory.REAL,
+                created=arrow.utcnow().shift(hours=-2),
+                date=arrow.utcnow().shift(hours=-2),
+                deviceid="DEV_ID",
+                grpid=1,
+                measures=(
+                    MeasureGetMeasMeasure(type=MeasureType.WEIGHT, unit=0, value=71),
+                    MeasureGetMeasMeasure(
+                        type=MeasureType.FAT_MASS_WEIGHT, unit=0, value=51
+                    ),
+                    MeasureGetMeasMeasure(
+                        type=MeasureType.FAT_FREE_MASS, unit=0, value=61
+                    ),
+                    MeasureGetMeasMeasure(
+                        type=MeasureType.MUSCLE_MASS, unit=0, value=51
+                    ),
+                    MeasureGetMeasMeasure(type=MeasureType.BONE_MASS, unit=0, value=11),
+                    MeasureGetMeasMeasure(type=MeasureType.HEIGHT, unit=0, value=21),
+                    MeasureGetMeasMeasure(
+                        type=MeasureType.TEMPERATURE, unit=0, value=41
+                    ),
+                    MeasureGetMeasMeasure(
+                        type=MeasureType.BODY_TEMPERATURE, unit=0, value=41
+                    ),
+                    MeasureGetMeasMeasure(
+                        type=MeasureType.SKIN_TEMPERATURE, unit=0, value=21
+                    ),
+                    MeasureGetMeasMeasure(
+                        type=MeasureType.FAT_RATIO, unit=-3, value=71
+                    ),
+                    MeasureGetMeasMeasure(
+                        type=MeasureType.DIASTOLIC_BLOOD_PRESSURE, unit=0, value=71
+                    ),
+                    MeasureGetMeasMeasure(
+                        type=MeasureType.SYSTOLIC_BLOOD_PRESSURE, unit=0, value=101
+                    ),
+                    MeasureGetMeasMeasure(
+                        type=MeasureType.HEART_RATE, unit=0, value=61
+                    ),
+                    MeasureGetMeasMeasure(type=MeasureType.SP02, unit=-2, value=96),
+                    MeasureGetMeasMeasure(
+                        type=MeasureType.HYDRATION, unit=-2, value=96
+                    ),
+                    MeasureGetMeasMeasure(
+                        type=MeasureType.PULSE_WAVE_VELOCITY, unit=0, value=101
+                    ),
+                ),
+            ),
             MeasureGetMeasGroup(
                 attrib=MeasureGetMeasGroupAttrib.DEVICE_ENTRY_FOR_USER_AMBIGUOUS,
                 category=MeasureGetMeasGroupCategory.REAL,
-                created=time.time(),
-                date=time.time(),
+                created=arrow.utcnow(),
+                date=arrow.utcnow(),
                 deviceid="DEV_ID",
                 grpid=1,
                 measures=(