I'm gonna be 100% honest: I cannot, for my life, play against what seems to be the average Luigi. The walls of fireballs, single jabs, and short hop aerials seems to really kill me and always put me in a position to get grabbed by Luigi, racking up big damage and kills. I've tried PSing the fireballs and f-tilting his grab attempt, which works to some extent, but I'm barely able to get off spindash combos or set ups for damage/kills. Is it the playstyle or character that's killing me here? Am I just not being patient enough? Should I really just evade, pick and choose my opportunities, and let the match drag on to win? ITS DRIVING ME TO MY WIT'S END!!
Edit: During some matches against a Luigi main/friend, I did use the spinshot to hop around the stage and avoid fire/grabs, but it really only seemed to make the match longer without putting me in an advantageous position. There were certain situations where out of a spinshot I was able to punish a whiffed aerial, but for the most part, nothing too good came of it.
Also, any advice against Captain Falcon? (ie how to DI out of his combos) He's another character that really gets at me, although it might just be the play style of the players I meet who seem to just partake in footsies until they have a good opportunity to pull some funky stuff. This kind of crap is gonna end my tournament life. SOS D:
Luigi
I find Luigi to be fairly tolerable. I believe Luigi's fireballs are -frames on hit if you are in his face and he shoots a fireball on the ground. Use this to your advantage and jab if you are in his face and eat a fireball. For aerial fireballs, keep in mind that Luigi will either be going up or coming down. If he's going up, see the next section. If he's coming down, you need to be weary of the spacing. If he shot a ground fireball and then jumps to descend with an aerial fireball, you have enough time to power shield the ground fireball and get in his face for a mix up. Be cautious of NAir.
Luigi is super floaty but also slow moving in the air. You can cross him up on the ground as he's landing. You'll usually want to approach from behind him as his NAir's priority is insane. Did Luigi just full hop? Run under him and start charging a side B towards him. See how he responds. If he does a BAir, shield it or let your side B go. If he shields on landing, go for a Side B if you think you can hit him before he lands. Luigi cannot punish you as easily as Shiek, Diddy, or Captain Falcon can on a shielded Side B, so use this to your advantage.
If Luigi has a fireball hugging the ground and charges you for a grab with the fireball as cover, you can use many mix ups to counter this. You can charge Down B or Side B, either jump cancel or shield jump cancel as he's approaching (I prefer Down B at this range) and descend with a FF NAir/BAir if you confirm his whiffed grab, or empty hop and go for a ground mix up. If he tries to jump to hit you, you can double jump and spring him or even go for a FAir or Aerial Side B/Down B to stuff his attempt. Finally, if you're not willing to go for this mix up or think he will shield your NAir or can't afford to eat a throw/USmash, just Spin Shot past him and reset it to neutral. This also gives you more space to retreat. If he tries this mixup while you have a lot of room to retreat, just retreat and start charging side B and see what he does. If he reads your retreat, he may continue running and go for the grab or dash attack at which point you release the side B or shield and/roll/spotdodge. If he whiffs the grab and you are still didn't cancel your Side B, that's a free Side B.
If Luigi is spamming aerial Down B to stuff your options while he's landing, I personally like to keep getting hit by it until I wrack him to kill %. Luigi's Down B isn't too damaging especially if all the hits don't connect. On top of this, he doesn't have any really good follow ups and he'll have trouble catching you as you land. Then he will do this and you FSmash/BThrow/Pivot BThrow for the KO.
Finally, if you are in 'boxing' range of Luigi, try to get out ASAP. His jabs, throws, and superior frame data will wreck you. Always weave in and out of Luigi's range. One last tip, if he is mindlessly spamming fireballs on the ground, just do a fast short hop homing attack on him. If he just does 1 extra fireball, he will get hit by this. If he shields it, next time just empty hop and grab him. He will stop doing too many grounded fireballs if you pull this off on him. Also, you can often SC/SD under or through or clank with his fireballs.
Captain Falcon
As for Captain Falcon, he's a tough cookie and is, IMO, good against Sonic. His ability to dash grab you as you land is a huge detriment to Sonic considering Sonic relies on SD/SC for damage. Generally you want to DI down and away from him if he DThrows you. However, this can definitely backfire if he reads you well and can bait an air dodge and then spike you or NAir/UAir and even knee, USmash or Falcon Punch. Honestly, I don't think there is a DI that guarantees your safety so you'll want to try and mix it up a bit. If he NAirs you after DThrow, DI away!!! Or else you may eat a knee in the face. Also, we tend to have a predictable recovery so Falcon can definitely land spikes on Sonic. This is up to you to bait his jump and DAir or Up Tilt and you either need to air dodge it or recover before/after he does his DAir. Recovering high is only viable if you have your jump and spring or if you think he will spike you as you go low, you can go for a high recovery and watch him jump off after you when you're not even there. If you're coming to the stage at a medium height and not from under the stage, you can jump to bait a whiff and get a safe landing, or spring him if he commits too hard. However, if he successfully baits your spring, you are a falling 'sitting duck' and are likely to get thrown. Likewise, he can read your jump and simply double jump to hit you. The 'while recovering' game as Sonic vs Falcon is very tough for Sonic.
Offensively, you'll want to bait 2nd jumps and force him to a landing mixup where he will either eat SD/SC or a grab as he lands. However, he can still mix this up with landing aerials but you need to mix this up with cross ups and shields.
Sorry this was a bit long, but this is only the tip of the iceberg for any match up. I could keep going but if you end up reading all of this already, that's pretty impressive... Hopefully it helped a little.