I had gone through several courses on outsourcing and many of them said that I should tell to the freelancer something like "I have evaluated all candidates and I'm down to you and another one, but they offer this service for 20% less than you. If you match their offer, we will do business together."
Sounds like a smart thing to say, right?
Not that much.
In *reality*, it makes the freelancer feel less appreciated. They may "do the job" but it will likely be in a half-assed manner. They will think "Oh, you paid me less than I felt was right, so you deserve to get less-than-perfect results."
Especially if you are into a long-term project (like software development for development), such a mistake can cost you months of your life, thousands of lost dollars and many sleepless nights and anxiety.
You'll be running left and right trying to "patch up" the bad work the freelancer did.
Find a good freelancer and pay them *exactly* what they ask for.
If you feel that they are not worth what they ask for, then don't hire them.
If you feel they are worth what they ask for, hire them and pay them accordingly. Then, get out of their way and let them get to work. You'll both be happier :-)