There are a few things I've seen have good success.
Developer Standards - This would include things like libraries to use, encryption ciphers and strengths to use, information on testing for input sanitation, etc. The key here is to work very closely with the leaders in the development org.
As long as the data is up to date, accurate, and well put together it saves developers a lot of time. This will ensure your developers spend as little time thinking about pre-determined security configurations and can focus on the problem solving they really are there for. This is also very helpful in that it takes new developers less time to really get up to speed.
Hacking Challenges - These can take a lot of setting up, but as schroeder mentioned, challenging developers to solve puzzles can be a fun way for them to learn. You can put up a system that is vulnerable to some relatively common vulnerability, and challenge developers to get some type of data out they are not supposed to do. Which language/platform/os etc. depends a little on what it is your developers code in.
Static Analysis - Develop good static analysis tools, and expose results to your developers. Help them learn to interpret them so they can write more secure code. This is potentially a ton of work but pays off depending on how many developers you have to train up.
Security Champions - Just like with any other topic, some developers are more fascinated by security than others. Find these folks in your various teams, send them specific information, ensure they report strange security issues to you, etc. You could potentially help teach them more advanced use of security tools and give them at least a basic understanding of code auditing so they can help review their team's code. Give them t-shirts, little awards, and other recognition and always, always be sure to THANK them. :)