Flower

Flowers are a type of plant in Minecraft. While they can be planted on grass and dirt blocks, flowers cannot be cultivated like Trees, Sugar Cane, or Crops, but can occasionally spawn when Bone Meal is used to generate patches of Tall Grass. They appear to spawn randomly in clusters on grass blocks. Flowers can be used to make Wool Dyes.

To survive, they must be planted on a grass or dirt block that either does not have a block any altitude above it to obstruct sun/moonlight, or is lit with at least a light level of 8. If neither of these conditions exist, the flower will quickly pop out. This attribute allows flowers to be used in the creation of light-sensitive mechanisms.

Even in a biome covered with snow, flowers will generate naturally on dirt blocks with grass, despite the adjoining dirt blocks being covered with snow.

Dandelion
Dandelion flowers can be collected in one hit and placed in a crafting grid to create 2 units of Dandelion Yellow dye.

Rose
Roses can be collected in one hit and placed in a crafting grid to create 2 units of Rose Red dye. They are also somewhat rarer than yellow flowers; usually being alone or in groups of 3-4.

Cyan Flower
In a video preview of Minecraft Pocket Edition on the Xperia PLAY, a cyan flower is visible at 0:25. Jens_Bergensten stated that they exist as replacement for Roses, following some hardware problems; Cyan flowers are not planned to be added in the PC version of Minecraft.

Cyan flowers appear randomly and spawn much like Roses. It should be noted that Dandelions are also available in the Pocket Edition.

History
Dandelions and Roses were first introduced in Classic 0.0.20. The Cyan flower was introduced in Pocket Edition Alpha 0.1.

In Minecraft Classic, flowers could be placed on all block types, including lava and on top of each other.

It was not possible to regrow flowers until the Beta 1.6.6 update, when Bone Meal was given the ability to generate them with Tall Grass when used on a Grass Block. After Beta 1.8, Dandelions became more abundant.

In Beta 1.8, a map generation glitch made it impossible to find red flowers without using Bone Meal; this was fixed in Beta 1.9.

Prior to Beta 1.9pre4, flowers were generated as part of the landscape and could not spread or die, but since Beta 1.9 pre4, flowers now naturally spread.

Trivia

 * On SMP, placing a flower on a stone block with a layer of snow on top would result in the flower being planted normally.
 * Due to the nature of the flowers' spawning algorithm, it is possible (but relatively rare) to find naturally-spawned flowers in lava caverns or abandoned mine shafts with naturally occuring torches.
 * Like Torches, flowers convert falling objects like sand or gravel into their collectible item entity.
 * On Minecraft 1.0 if you throw a flower or a rose (by pressing 'q' when you are holding it) at a creeper all creepers,zombies,skeletons,spiders and endermen won't attack you unless you hit them.