To follow these instructions you will need a phone as well as a PC (Windows) or Mac computer. This will take 10-20 minutes for the average user but can be done much faster.
First open the contacts app, hit the menu button, select "Import/Export" and then "Export to USB storage" as shown below:
This will create a file called "Contacts.vcf" or "00001.vcf" or something similar and save it on your phone's memory.
Next, to transfer the file to your computer, download the "Astro File Manager with Cloud Storage" app from the Play Store. Open the app, navigate through all of its "first time use" prompts and then go to Locations>sdcard (sometimes called sdcard0) and find the .vcf file, you will probably have to scroll down to the bottom to see it. Once you locate the .vcf file long press (press and hold down for a few seconds) on it until the menu you see on the far right screen below pops up.
Select the "Share" option from the list.
Then select "Gmail" from the list of ways to share, send this email to yourself, and then go to your PC/Mac and open the email. In the email an attachment will be shown at the bottom with the name of the file you emailed. Hover the mouse over the attachment and an "Add to contacts" button will appear. Click that button.
Once you click that button you will be taken to your Google Contacts web page and a light reddish bar with the option to "Find & Merge duplicates" will have appeared. Click where it says "Find & Merge duplicates," if you do not see this light reddish bar click where it says "More" beside the drop down arrow and you will find the option to "Find & Merge duplicate" in the menu that appears. Both methods are shown below:
Now all that's left is a little clean-up.
Uninstall the "Astro File Manager" app if you don't plan to use it in the future and re-open the contacts app. Hit the menu button and then select the "Contacts to display" option, you may have to scroll down the list of options to make this option visible. Then select only the Google account contacts, you will be automatically returned to your contact list, click the plus button to add a new contact.
We're going to add a fake new contact to reset the default place that your phone stores contacts. After we make this fake contact you may delete it. Name your new contact "test contact" or whatever you like and then select the area above the new contact name where it says "Phone" a drop down menu will appear, select "Google" instead of "Phone" and then select "Save." It is important that you select "Save," if you do not every new contact you create with your phone will become a duplicate.
You are done and should not encounter duplicate contacts again. Yayyyyyy!!
I've only personally tested this on Verizon Samsung phones but it should work with AT&T, Sprint,T-mobile and international models as well.