sda5 is an logical partition in your setup. It lives inside the partition sda4, which is the so called extended partition. This is a scheme left over from the traditional MBR way of doing things...
Adding space at the beginning of a partition means you have to rewrite the header of the partition.
gparted can do this.
I did this on a virtual machine, with slightly different sizes, but the process should be more or less the same.
There is a very real risk that you will loose data! Do a backup!
Start by moving sda3 to the beginning of the free space, by selecting Partition -> Resize / Move
Select the sda4 drive, and select Partition -> Resize / Move again:
Move it to the beginning of free space. This should put the unallocated space inside the extended partition:
Finally, you can Resize / Move the sda5 partition: Hit apply to actually apply the operations
This can not be done from the running system. You have to boot from a Live CD / Live USB to move the system partition.