The Allium giganteum is also known as the "ornamental onion" because of it's strong onion-like smell, which helps to deter moles from your garden. While the smell is strong to moles, it might not be that bad to you. These plants can grow fairly tall, up to three-and-a-half feet. Their beautiful globes of purple flowers each summer make them popular mole deterrents, since they also add to the beauty of a garden.
Castor oil is a repellant to moles. The castor bean plant itself is poisonous if ingested and should not be grown around children. The plant can grow quite tall (up to 15 feet) if not maintained, but will sprout pretty red flowers to enhance the look of your garden. They're also quick-growing and can take over your garden if you're not careful. The mere presence of them, though, will rid your garden of moles.
If you're growing a vegetable garden and moles are wreaking havoc, onions are the perfect natural deterrent. The smell of these pungent plants keeps moles at bay. Onions make good companion plants to many other vegetables and fruits, such as strawberries. Planting onions next to strawberries help the berries fight disease. Just be careful not to plant onions next to peas or asparagus.
Not only will the Mexican marigold deter moles, it's also a natural deterrent for many insects and even wild bunnies. However, bees love it. This plant also grows to around four to six feet and blooms yellow-orange flowers year round, which makes it a popular choice.
The wood hyacinth, also known as the ornamental blooming scilla, is another stinky plant that will deter moles from your gardens. This plant, however, will only grow up to 18 inches tall, unlike the allium and castor bean plants. They flower blue, white or pink bell-shaped flowers that complement many flower gardens.