This is actually fairly easy to do, but will take a bit of work. For the main boom, you'll want to use env_explosion. Fairly simple; set radius, fireball options, etc. As for the shockwave; the actual force will be accomplished via trigger_push. It should start disabled, and can be enabled when triggered, at the same time as the explosion. The easy way is to create a large static volume. When triggered, everything touching it will be pushed away. You'll have to experiment w/ the push speed. If it's too fast, players won't know why they're suddenly flying against the back wall. Too slow, and it will be ineffective or simply not move the players (heavies).
You can get a little creative with the push by adding additional effects w/in the push volume. Example; small env_explosions like little fireballs. env_spark might work well, as would env_smokestack. The Input/Output (I/O) for all of this is simple, but there's a lot of it. You'd have something to the effect of OnCapture, env_explosion, fire; OnCap, trigger_push, enable; OnCap, small explosion, fire, delay 5 seconds, OnCap, env_spark, fire, delay 2 seconds. And so on.
Disclaimer; by themselves, the aforementioned effects are a nice touch. But they get expensive really quickly if you keep adding them. It's also possible that not all of these will work in TF2. Case in point; I was using func_smokevolume to create some fog, but it's broken for TF2. So I had to use func_dustcloud instead. Not quite as shiny or efficient, but it gets the job done. But I digress. I hope this helps

Good luck m8!