--- Quote Start ---
It would be appreciated if someone can tell me in which application fpga perform better than uc and vice versa.
--- Quote End ---
You'll get a lot of different opinions on this question.
The answer depends heavily on your application.
If your problem involves lots of parallel data processing and can be visualized as a 'stream' of processing steps, then this works quite nicely in an FPGA. But it also works quite nicely on a bank of parallel DSP processors. If you were a DSP programmer, then the DSPs would be your perfect solution. However, if you were an FPGA programmer, the FPGAs would be the obvious solution.
If your problem involves lots of control and monitoring applications, then a microcontroller might be the solution. But what if the microcontroller doesn't have 'just the right mix' of peripherals? Well, you add a CPLD or an FPGA to its local bus (or SPI port, or I2C port) and use each where they perform the best. Look at the Cypress PSoC and the MicroSemi Fusion devices - they are microcontrollers with programmable analog or digital blocks.
I use PowerPC processors and FPGAs. Why? Well, it allows the partitioning of the real-time tasks in the FPGA, and the non-real-time (or less real-time) tasks to a processor. You can then partition the system design across multiple people, with multiple skill sets.
In my current project, I'm looking at using the ARM STM32F4 as a power controller for my more expensive FPGAs; it'll turn the power on, monitor temperatures, currents etc, and can be used as the device programmer. Why use a microcontroller? Its one chip, its cheap, and after programming it to do its job, its just a chip on the board (no software maintenance required).
Cheers,
Dave