Having your Oscar in a 20g even when he's young isn't a good idea, he still needs plenty of room to grow while he's growing. He may already be pushing for territory, since there really isn't any room for him.
That being said, he could also be an overly aggressive Oscar and only get more aggressive as he gets bigger. Like any other species, sometime you get a bad one. I had a Red Zebra that was beautiful, but by the time he was 7 months old he was a psycho serial killer. He would hide in the decor and lie in wait for a tank mate to swim past, then he'd lunge out and remove a chunk of it's stomach, killing it instantly. Unfortunately I didn't catch him at it until he had killed more than half my stock, all of them female. It was so bad that I will never own another Red Zebra. Even though I know that not all Red Zebra's are like that.
My point being, I am really surprised that a 2-2.5" Oscar is already attacking other fish of the same size. Oscars aren't really mean but they can become aggressive. I am by no means an expert on Oscar behavior, but 2" seems really young to me to be that aggressive. You may want to re-home him, then get a different Oscar after you have the appropriate size tank.