Try to throw grenades as much as possible to stop his spamming. Usually if anyone has two grenades surrounding them they will try to escape it all. Charge into his location after throwing them. It'll make him scatter.
One way that I use to approach is jumping into an airdodge. It helps approach as fast as running. Also, it will help you get past the jabs into smashes that your friend does. Once you get close, jump into an air dodge and try doing something like a back air. Or, you can land and use your front tilt.
Maybe attacking isn't the best approach. Maybe, once you get near him, use grenades and shield drop them. After doing so, roll away, and hope that he hits him. Just keep surrounding him with grenades by shield dropping them. You can drop the by pressing Z if you pick one up on accident.
Practice grabbing against Link as much as possible. Grabs can go through any attack if used at the right time. Once you get Link off the edge, he's pretty much done for. Once you get him off the edge, edgehug. If he can get back on just jump and do a back air.
When you are attacking without explosives, only use the long range stuff like the up tilt or ftilt. Down tilt works well too. The neutral air is good sometimes but not when you are right below Link of course.
Use your dash (run and press a) frequently. Link can't do much against that move.