Cardiff Blues claimed victory at Murrayfield as Edinburgh slumped to a fifth straight Pro12 defeat.
Mike Paterson's unconverted try helped Cardiff into a 14-6 half-time lead.
WP Nel crossed for the hosts after the break and kicks by Gregor Hunter and Harry Leonard temporarily gave Edinburgh the advantage.
But Rhys Patchell added to his three first-half penalties to give Blues a narrow victory and leave the home side with only a bonus point.
The match was Edinburgh's first since
Hunter was unsuccessful with his first two penalties as Cardiff established a 6-0 lead through Patchell's kicking.
A wayward pass by Dave Denton ended a promising Edinburgh attack before Hunter broke his duck for the evening to reduce the hosts' arrears.
Patchell replied and then the Edinburgh fly-half kicked another successful penalty.
The first try of the evening came when Patchell evaded two men before unloading for flanker Paterson to cross. However, the Cardiff fly-half missed the conversion.
Edinburgh responded early in the second period with Dougie Fife carrying the ball into contact and substitute Nel forcing his way over. Hunter added the conversion.
And Hunter's replacement Leonard kicked Bradley's side into the lead for the first time before the hour mark.
However, Patchell's penalty put Cardiff back into the lead and this time Edinburgh could not recover, with the home side committing errors when in sight of the line.
Edinburgh: Tonks, Fife, De Luca, Atiga, Jones, Hunter, Rees, Yapp, Lawrie, Cross, Gilchrist, van der Westhuizen, Denton, McInally, Talei.
Replacements: Brown for Atiga (72), Leonard for Hunter (56), Jacobsen for Yapp (68), Titterrell for Lawrie (68), Nel for Cross (41), Cox for Gilchrist (23), Watson for van der Westhuizen (41). Not Used: Leck.
Cardiff Blues: Tovey, O. Williams, Smith, Evans, Robinson, Patchell, Jones, Filise, Breeze, Andrews, Paterson, Down, Navidi, Young, Copeland.
Replacements: Czekaj for Tovey (61), Walker for Jones (67), Hobbs for Filise (59), Dacey for Breeze (66), Bourrust for Andrews (59), Pretorius for Young (56), Reed for Copeland (56). Not Used: G. Davies.
Ref: John Lacey