I bought my oldest son some t-shirts that were on sale, unfortunately, I guessed wrong on the size and they were all waaay to big. I could have taken them back to the store, but 1. I'm lazy, and 2. he really liked them and I wasn't sure if they would have the same shirts in his size. By the way, sorry the pictures are so bad, I took them with my phone.
So the first step is to find a shirt that fits. Turn both shirts inside out and lay the big shirt out with the shirt that fits as flat as possible on top of it. mark the outline of the smaller shirt with chalk. You can also mark the bottom of the smaller shirt if you want to. This shirt happens to fit width-wise, but my son is so skinny shirts normally get too short before they get too tight, so I left the length as-is.
Mark both front and back of the shirt you want to alter, then remove the smaller shirt and it should look something like this, on both sides. Sew up along the chalk line from bottom hem to sleeve hem. try on the shirt before you cut off the excess to make sure it fits right, if it does, trim of excess fabric, if not, rip stitches and try again. and You're done, unless you want to change the length of the shirt or sleeves.
If you need to change the length, figure out the desired length of shirt/sleeves and add/leave at least 1/2" for the hem. I used the existing hem as a reference. sew 2 seams, I did one at 4/8" and one where the outside of the hem was at the right hand edge of my sewing machine foot, not sure what that is...
Aaaand you're done! Easy peasy rice and cheesy. You totally can't tell from this picture, but trust me, it looks a lot better