You can't compare Flash to CSS3. Try comparing it to HTML5 (which works quite well with CSS3).
This said, Flash has one key advantage over what HTML5 does -- Flash locks away its content behind a single file, so it's harder to reverse-engineer than an equivalent HTML5 setup. It also works better with older browsers that aren't able to handle html5.
Flash lets you create complex animations and interactive interfaces such as games, and it's very powerful for those.
For desktop, flash will probably work in most computers and browsers. CSS3, on the other hand, is not supported by earlier versions of Internet Explorer.