Square without a doubt.
EDIT: I assumed the job was in engineering, so all feedback below is mostly relevant to dev/engineering.
Here are some reasons (from what I heard from people at Google or interviewed at Google):
1. Google doesn't hire for a specific team or project, so when you get an offer you don't know a) who your manager will be b) your team c) project you will be working on. In my opinion, it's terrible for the new hire.
2. Google is so big that often times multiple teams work on the same project/problem without teams knowing about each other's efforts.
3. A lot of Google tech is proprietary and heavily customized. I heard it's not unusual for former Google engineers not being able to code in a typical LAMP stack environment. *ouch*
4. You are likely to learn more and grow your tech skills faster at a tech startup, than at Google. If you are a curious and fast-learning type now, you are likely to stagnate at Google.
5. I hear nobody gets fired from Google, and that means there are incompetent people floating around. I personally would hate this. Firing some underperforming employees is healthy.
As you can see, all my nuggets of wisdom are about Google. Square is a fairly known brand, not some unfunded startup, so at least it's not that far in brand recognition in the tech industry from Google. Also, growing companies have growth opportunities for their employees.
I would recommend Square.
@Webbie has already listed the reasons why to pick Square. Here are the reasons why you might want to pick Google: