I have a CMOS chip and I generate a square wave with changing frequency. It is LVTTL (3.3Volt) and max current from the device is 24mA.

I want to drive a speaker in both directions with it so I added a capacitor such that RC>>Frequency of my square wave (I think this method is called coupling capacitor?). That worked and produces a nice AC square wave -3 to 3 volts.

Now I want to amplify this AC square wave so I can get up to 250mW for my speaker.

I can see how to amplify current for a DC square wave with a single transistor but how do you amplify an AC square wave? Can it be done with simple transistor amplifier? Do I need an Op Amp (but looking at those it seemed like they are not the right choice for driving a speaker?)

I did a lot of searching on the Internet for how to do this but nothing seemed right so I am posting here.

Use an op amp to amplify the voltage and then use a transistor in an emitter follower configuration to drive the speaker. The best solution, however, will be an audio amplifier. Have a look at www.national.com for audio amplifiers integrated in a chip.