How did the abbreviations 520 and 521 arise? This article explains that 

520 = 我愛你
521 = 我願意


Many such abbreviations are somewhat intuitive from the mandarin pronunciation: 


  5918 = wu3jiu4yao1ba1 ~ 吾就要發


But I can see no connection between 2 and 願 or 2 and 愛 or 0 and 你！
Yeah, I'm with you on this one, the connection is very hard to hear.
Ninchanese wrote a blog post about it that mentions [emphasis my own]:

How did 5.20 come to equal a Chinese love word that says I love you?
Talking about this special event, you may wonder why it occurs on this day and not another one in Chinese. The answer is quite simple. It’s all about the sounds. When you write May 20th in numbers, it’s written 5.20. When you pronounce the numbers 5. 2. 0 in Chinese, 五二零 wǔ èr líng, they sound very close to the words 我爱你 wǒ ài nǐ. See? They don’t sound exactly the same, but they sound quite similar, and that’s enough! The Chinese love plays on homophonic words and numbers with hidden meanings.
520 originally started as a slang word used by the Chinese online as a shortcut to say I love you in Chinese, like ILY in English. It then came to be associated with the date May 20th (5.20), which therefore became a very romantic day!

They even admit that it doesn't sound totally the same. It, seems, to makes more sense that 20 sounds like 爱你, rather than 2 = 爱 and 0 = 你 - a lot of things said together quickly are easily confused with other things.