Steffen, a former world record-holder, had been pushed into the background by Trickett's exploits over the last two years, but she will leave Beijing as the Olympic champion.
World champion Trickett, who squeaked into the final after the disqualification of China's Pang Jiaying in the semi-finals, was under world record pace in lane eight before she was caught by Steffen close to the wall.
Steffen's time of 53.12 seconds, was 0.24 seconds outside Trickett's record of 52.88, but it was her personal best and was the third-fastest all-time behind Trickett's two sub 53-second swims.
Trickett was just four-hundredths of a second behind, while Natalie Coughlin picked up her fifth medal of the meet with bronze and equalled the American record in 53.39.
"So many swimmers have swum so well here, so the pressure was gone, the relay was behind me, so I just eased into it without feeling too much pressure," Steffen said. "I wasn't expecting a medal, I just focused on myself and sometimes the outcome is not what you expect."
Steffen, who became the first German since East Germany's Kristin Otto in 1988 to win this event, said she had wanted to race Trickett in the final.
"It definitely wouldn't have been the same if she hadn't been there, I was the record holder, now she has it and you want to race the best," she said. "I wouldn't have wanted to win without her there and never known what would have happened if she had been there. She is the world record holder, but didn't win gold - that is sport."
The pair gave each other a long embrace over the pool lane ropes seconds after the finish.
Trickett's world record may be still intact, but she leaves without the Olympic gold at Athens and now Beijing, despite going in as the record holder both times. Trickett was thankful to be swimming the final at all after she capitalized on Pang's disqualification to squeeze in after a sluggish 54.10 in her semifinal.
"I was ninth after the semi-finals, I was out of the final, so to get put in and come away with a silver is awesome," said Trickett.