df(1) gives you the size of the file system on the partition, not the size of the partition itself.
Have a look at /proc/partitions, and see if the sizes are different there.
resize2fs(8) will resize Linux ext filesystems, xfs_growfs(8) will do so with XFS file systems. In default mode, they will grow the file system to fill the partition. There's no need to invoke fdisk(8).